Форум сайта python.su
zezeQImage может создаваться из “сырых” данных, для этого конструктору нужно передать строку с данными и их формат, что и делается в __init__(). Это намного быстрее чем setPixel().
Зачем это делать, так как двухмерный массив значений построен уже?
img = BinImage("img.dat")
img = BinImage("img.dat") self.image_label.setPixmap(QtGui.QPixmap.fromImage(img))
Офлайн
Я пробовал так сделать:
a = numpy.fromfile(fp, dtype=numpy.uint8) a = numpy.flipud(a.reshape((492, 720), order='F')) a.tostring() im = QtGui.QImage.__init__(self, self, 492, 720, self.Format_Indexed8)
def MyDraw(self): global im Tochka = QtGui.QPainter() Tochka.begin(self) Tochka.translate(50, 50) Tochka.drawImage(0, 0, im, 0, 0, int((2*self.MyRadianToGradus(phi))+0.5), 492) Tochka.end() self.update()
a.tostring() im = QtGui.QImage.__init__(self, self, 492, 720, self.Format_Indexed8)
self.__data = a.tostring() im = QtGui.QImage.__init__(self, self.__data, 492, 720, self.Format_Indexed8)
Отредактировано zeze (Апрель 12, 2013 11:13:05)
Офлайн
Не понимаю чего вы хотите.
self.__data = a.tostring() im = QtGui.QImage(self.__data, 492, 720, self.Format_Indexed8)
Офлайн
reclosedev
Не понимаю чего вы хотите.self.__data = a.tostring() im = QtGui.QImage(self.__data, 492, 720, self.Format_Indexed8)
Этого?
im = QtGui.QImage(720, 492, QtGui.QImage.Format_ARGB32)
im = QtGui.QImage(720, 492, QtGui.QImage.Format_Indexed8)
Отредактировано zeze (Апрель 15, 2013 09:44:21)
Офлайн
Сделал так:
data = a.tostring() im = QtGui.QImage(data, 492, 720, QtGui.QImage.Format_ARGB32)
Отредактировано zeze (Апрель 15, 2013 13:05:21)
Офлайн
Потому что передающий в QImage data отвечает за нее, т.е. она должна хранится. А при выходе из функции/цикла, Python удаляет ее.
http://qt-project.org/doc/qt-4.8/qimage.html#QImage-4
The buffer must remain valid throughout the life of the QImage. The image does not delete the buffer at destruction.
Офлайн