我有一个通用的图标图像,它有一个alpha。让我们说一个黑色球体放在方形按钮上,具有透明度。 现在我想动态改变图标的颜色,而没有像sphere_black.png,sphere_red.png等的几个图像。 对于地图中的所有人,是否有办法对像素图进行着色,尊重alpha并更改该像素上的HSV?
我有类似的东西,但卡住了:
img = QtGui.QImage(kwargs['icon_path']
pxmap = QtGui.QPixmap(img)
for x in range(img.width()):
for y in range(img.height()):
print img.pixel(1, 1), '###'
# ???? #
感谢任何帮助!
答案 0 :(得分:0)
QGraphicsColorizeEffect可能就是你要找的东西。遗憾的是,QGraphicsEffect
类被用于图形视图框架,它不能轻易应用于QImage
。但是,正如this discussion所示,有相同的解决方法。
QPixmapColorizeFilter::draw()中效果的实现显示了着色的完成方式:使用QPainter::fillRect()
在图像上绘制彩色矩形(颜色的alpha设置为完全不透明的颜色) ,设置合适的合成模式。