在QGraphicsPixmapItem中处理像素

时间:2012-03-23 11:49:24

标签: pyqt

我正在使用PyQt构建一个用于查看图像的小应用程序。当我点击图像时,我想改变我点击的像素的颜色:

示意性地,我当前的代码如下所示:

scene = QtGui.QGraphicsScene()
view = QtGui.QGraphicsView( scene )

image = QtGui.QImage( "image.png" )
pixmap = QtGui.QGraphicsPixmapItem( QtGui.QPixMap.fromImage( image ))
scene.addItem( pixmap )
...
...
def mousePressEvent(self , event):
    print "Click on pixmap recorded - setting Pixel to red"
    image.setPixel( event.pos() , RED.rgb())

代码“工作”意味着调用了mousePressEvent()方法,而image.setPixel()方法没有给出任何错误,但屏幕上没有任何反应。有关如何显示更新像素的任何提示?

乔金姆

1 个答案:

答案 0 :(得分:0)

要进行更改,您需要重新加载图片

self.image.setPixel(event.pos(), RED.rgb())
self.pixmap.setPixmap(QtGui.QPixmap.fromImage(self.image))

但我不确定这是一个好方法。如果您不需要保存修改后的图片,我会添加一些圆圈(例如addEllipse),而不是修改像素。

另外,不要忘记将窗口坐标映射到图像。