使用setPix更改像素颜色

2024-04-27 00:24:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一张黑白照片,我需要逐像素编辑。如果一个像素太暗,它的颜色应该改为黑色。这是我的密码:

    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()。好吧,应该是这样的

self.img.setPixel(i, j, qRgb(0, 0, 0))

我使用的是PyQt5.12.3,不知道如何导入qRgb。PyQt5.QtGui只有qRgba64。如果qRgba64对于setPixel()也是可以的,那么如何使用qRgba64传递黑色?你知道吗


Tags: inself编辑imgforvalue颜色range
1条回答
网友
1楼 · 发布于 2024-04-27 00:24:59

我发现您指出的问题很奇怪,因为如果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))

相关问题 更多 >