我有一张黑白图片,我需要逐像素编辑。如果像素太暗,则应将其颜色更改为黑色。这是我的代码:
for i in range(width):
for j in range(height):
pixel_value = int(hex(self.img.pixel(i, j))[8:], 16)
if pixel_value < 110:
self.img.setPixel(i, j, .......)
所以问题是我不知道如何将颜色传递给setPixel()。 AFAIK应该是
self.img.setPixel(i, j, qRgb(0, 0, 0))
我正在使用PyQt5.12.3,但我不知道如何导入qRgb。 PyQt5.QtGui仅具有qRgba64。如果对于setPixel()也可以使用qRgba64,那么如何通过qRgba64传递黑色?
答案 0 :(得分:3)
我发现您指出的问题很奇怪,因为如果在PyQt5 5.12.3中存在类qRgb(我也在PyQt5 5.13.0中进行了测试):
image.setPixel(i, j, QtGui.qRgb(0, 0, 0))
但是无论如何,如果您想使用setPixelColor()并将QRgba64转换为QColor:
image.setPixelColor(i, j, QtGui.QColor(QtGui.QRgba64.fromRgba(0, 0, 0, 255)))
或者更好地使用QColor:
image.setPixelColor(i, j, QtGui.QColor(0, 0, 0))