2012-03-23 3 views
0

저는 PyQt를 사용하여 이미지를 볼 수있는 작은 응용 프로그램을 만듭니다. mousePressEvent 그런 의미에서QGraphcisPixmapItem의 픽셀을 조작하십시오.

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()) 

코드는 '작동'

도식적으로 내 현재 코드는 다음과 같습니다 : 나 이미지를 클릭하면 내가 클릭 한 픽셀의 색상을 변경하고 싶습니다() 메서드가 호출되고 image.setPixel() 메서드는 오류를주지 않지만 화면에는 아무 것도 표시되지 않습니다. 업데이트 된 픽셀을 표시하는 방법에 대한 팁?

조아킴

답변

0

당신은 이미지를

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

를 다시로드해야하지만, 나는 그것이 좋은 방법 모르겠어요, 변화가 나타나게합니다. 수정 된 이미지를 저장할 필요가없는 경우 픽셀을 수정하는 대신 일부 서클 (예 : addEllipse)을 추가합니다.

또한 창 좌표를 이미지에 매핑하는 것을 잊지 마십시오.

관련 문제