通过操作位掩码对图片颜色进行改变的一次尝试
import cv2
import os
import numpy as np
# alpha, red, green, blue
bitmask = '#FF000000'
img = cv2.imread('original.png', cv2.IMREAD_UNCHANGED)
print('original size:', os.stat('original.png').st_size, 'byte')
if len(bitmask) != 9:
raise Exception('bitmask format error! should be like "#FFFFFFFF"')
mask_val = np.array([int(bitmask[-2:], 16), int(bitmask[-4:-2], 16), int(bitmask[-6:-4], 16), int(bitmask[-8:-6], 16)]) / 255
res = np.multiply(img, mask_val)
cv2.imwrite('res.png', res)
print('compiled size:', os.stat('res.png').st_size, 'byte')