操纵QI法师的颜色 - QT.

Manipulate color of QImage - QT

本文关键字:颜色 QT QI 操纵      更新时间:2023-10-16

我有一个通用的图标图像,它有一个字母。假设一个黑色球体放置在方形按钮上,具有透明度。现在我想即时更改图标的颜色,而无需sphere_black.png、sphere_red.png等多个图像。有没有办法为地图中的所有像素着色,尊重阿尔法并更改该像素上的 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), '###'
         # ???? #

任何帮助不胜感激!

QGraphicsColorizeEffect可能是你要找的。可悲的是,QGraphicsEffect类是与图形视图框架一起使用的,它不能轻易地应用于QImage。但是,如本讨论所示,有一些解决方法。

QPixmapColorizeFilter::d raw() 中效果的实现显示了着色是如何完成的:在图像上绘制一个彩色矩形(颜色将 alpha 设置为完全不透明的东西)带有QPainter::fillRect(),并设置适当的合成模式。