4
如何更改像素图中的特定颜色?例如,我有一个带有白色和黑色像素的像素图,并且我想将所有白色像素更改为蓝色,但将黑色像素单独留下。或者,也许改变黑色到白色和白色到蓝色... [我正在寻找Qt/PyQt中的解决方案,但这可能是一个关于如何处理/组成pixmaps的普遍问题。]Qt/PyQt(/其他?):如何更改像素图中的特定颜色?
如何更改像素图中的特定颜色?例如,我有一个带有白色和黑色像素的像素图,并且我想将所有白色像素更改为蓝色,但将黑色像素单独留下。或者,也许改变黑色到白色和白色到蓝色... [我正在寻找Qt/PyQt中的解决方案,但这可能是一个关于如何处理/组成pixmaps的普遍问题。]Qt/PyQt(/其他?):如何更改像素图中的特定颜色?
您可以使用createMaskFromColor
为白色像素创建位图,然后使用drawPixmap
用另一种颜色覆盖它们。
pix = QPixmap("test.png")
mask = pix.createMaskFromColor(QColor(255, 255, 255), Qt.MaskOutColor)
p = QPainter(pix)
p.setPen(QColor(0, 0, 255))
p.drawPixmap(pix.rect(), mask, mask.rect())
p.end()
注意createMaskFromColor
将会像素图转换为QImage
,所以你应该尝试,如果可以直接使用QImage
。
我想我会接受这种方法,如果没有其他。是否真的没有办法像素图可以遍历其像素,取代某些特定的颜色?看起来很实用很简单! – Jeff 2011-12-25 10:52:23
当然有:您可以将其转换为'QImage',然后使用'bits'或'pixel'来访问各个像素。我认为'createMaskFromColor'的方法会更快,但可能不会太多。 – 2011-12-25 10:59:03
你好,我知道这是一个古老的问题(抱歉打扰它),但你有这个运气吗?我正在尝试做同样的事情 – 2013-09-06 01:40:09