Qt/PyQt(/Other?):如何更改pixmap中的特定颜色?

Qt/PyQt(/Other?):如何更改pixmap中的特定颜色?,qt,pyqt,pixmap,Qt,Pyqt,Pixmap,如何更改pixmap中的特定颜色?例如,我有一个包含白色和黑色像素的pixmap,我想将所有白色像素都更改为蓝色,但不要使用黑色像素。或者把黑色换成白色,白色换成蓝色。。。[我正在Qt/PyQt中寻找解决方案,但这可能是关于如何处理/组合pixmaps的一般问题。]您可以使用createMaskFromColor为白色像素创建位图,然后使用drawPixmap用另一种颜色覆盖它们 pix = QPixmap("test.png") mask = pix.createMaskFro

如何更改pixmap中的特定颜色?例如,我有一个包含白色和黑色像素的pixmap,我想将所有白色像素都更改为蓝色,但不要使用黑色像素。或者把黑色换成白色,白色换成蓝色。。。[我正在Qt/PyQt中寻找解决方案,但这可能是关于如何处理/组合pixmaps的一般问题。]

您可以使用
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
将把pixmap转换为
QImage
,因此如果可能,您应该尝试直接使用
QImage

如果没有其他方法,我想我会接受这种方法。pixmap真的没有办法迭代它的像素,替换特定颜色的像素吗?看起来很有用,实现起来也很简单!当然有:您可以将其转换为
QImage
,然后使用
像素
访问单个像素。我认为,
createMaskFromColor
的方法会更快,虽然可能不会太快。您好,我知道这是一个老问题(很抱歉打扰您),但您在这方面运气好吗?我也在尝试做同样的事情