操纵QImage的颜色 - QT

时间:2016-03-18 09:42:35

标签: python c++ image qt colors

我有一个通用的图标图像,它有一个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), '###'
         # ???? #

感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

QGraphicsColorizeEffect可能就是你要找的东西。遗憾的是,QGraphicsEffect类被用于图形视图框架,它不能轻易应用于QImage。但是,正如this discussion所示,有相同的解决方法。

QPixmapColorizeFilter::draw()中效果的实现显示了着色的完成方式:使用QPainter::fillRect()在图像上绘制彩色矩形(颜色的alpha设置为完全不透明的颜色) ,设置合适的合成模式。