Манипулировать пикселями в QGraphcisPixmapItem - PullRequest
0 голосов
/ 23 марта 2012

Я использую 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 () не выдает никаких ошибок, но на экране ничего не происходит.Любые советы о том, как получить обновленные пиксели для отображения?

Joakim

1 Ответ

0 голосов
/ 23 марта 2012

Для внесения изменений необходимо перезагрузить изображение

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

Но я не уверен, что это хороший способ. Если вам не нужно сохранять измененное изображение, я бы добавил несколько кругов (например, addEllipse) вместо изменяющих пикселей.

Также не забудьте сопоставить координаты окна с изображением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...