LINUX.ORG.RU

История изменений

Исправление AntonI, (текущая версия) :

@aol, еще вопрос что бы новую тему не создавать.

У меня есть shared library на C++ которая делает картинку в виде массива (строки, как угодно), биндится через SWIG. Сейчас я генерацию картинки ускорил, все стало упираться уже в Qt и пр накладные расходы. Сейчас сделано так:

// C++:
std::string cpp_plot()
#python:
image = QtGui.QImage(sz_x, sz_y, QtGui.QImage.Format_RGB888)
image.fill(0xFFFFFF)
paint = QtGui.QPainter(image)
...
paint.drawImage(x0, y0, QtGui.QImage(cpp_plot(), x1-x0, y1-y0, QtGui.QImage.Format_RGB32))
... # всякое рисование линий и чиселок поверх картинки через paint
self.image = image
...

def paitEvent(self, event):
  QtGui.QPainter(self).drawImage(0, 0, self.image)

Что то мне кажется тут много копирований… картинка почти во все окно.

ЗЫ наверное я могу сделать так что бы cpp_plot рисовало сразу в питоновскую строку. Но вот дальше с ней куча пертубаций. Хотелось бы сразу рисовать в память image;-)

Исходная версия AntonI, :

@aol, еще вопрос что бы новую тему не создавать.

У меня есть shared library на C++ которая делает картинку в виде массива (строки, как угодно), биндится через SWIG. Сейчас я генерацию картинки ускорил, все стало упираться уже в Qt и пр накладные расходы. Сейчас сделано так:

// C++:
std::string cpp_plot()
#python:
image = QtGui.QImage(sz_x, sz_y, QtGui.QImage.Format_RGB888)
image.fill(0xFFFFFF)
paint = QtGui.QPainter(image)
...
paint.drawImage(x0, y0, QtGui.QImage(cpp_plot(), x1-x0, y1-y0, QtGui.QImage.Format_RGB32))
... # всякое рисование линий и чиселок поверх картинки через paint
self.image = image
...

def paitEvent(self, event):
  QtGui.QPainter(self).drawImage(0, 0, self.image)

Что то мне кажется тут много копирований… картинка почти во все окно.