crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Как правильно использовать метод bits(), Python
zuze
  опции профиля:
сообщение 10.6.2013, 14:33
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 211
Регистрация: 4.11.2012
Пользователь №: 3589

Спасибо сказали: 0 раз(а)




Репутация:   0  


Я бы хотел узнать, как нужно присваивать значения методу QtGui.QImage.bits(), так как увы в интернете, чего-то не нашёл.

Объявляю я так:

ptr = QtGui.QImage.bits()


А как теперь ptr значения присваивать не понимаю. Если значения которые надо добавить лежат в кортеже. Помогите пожалуйста, разобраться?

Если бы это было в Qt я бы сделал так:

for (int j = 0; j < 720; j++)
     for (int i = 491; i >= 0; i--)
          ptr[j][i] = QColor(buffer[i][j], buffer[i][j], buffer[i][j], 255).rgba();


А вот как в Python-е сделать, что-то не понимаю.

Сообщение отредактировал zuze - 10.6.2013, 14:33
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
zuze
  опции профиля:
сообщение 10.6.2013, 15:41
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 211
Регистрация: 4.11.2012
Пользователь №: 3589

Спасибо сказали: 0 раз(а)




Репутация:   0  


Я думал надо сделать так:

// Глобальные
bf = []
NF = []
im1 = QtGui.QImage(720, 492, QtGui.QImage.Format_ARGB32)
ptr1 = im1.bits()

for j in range(0, 720, 1):
    bf.append([])
    for i in range(491, -1, -1):
         bf[j].append(struct.unpack("B", fp.read(1))[0])

   for j in range(0, 720, 1):
       for i in range(491, -1, -1):
            ptr1[j].append(struct.unpack("B", bf[j]))


А вывожу так на экран картинку:

Tochka.drawImage(0, 0, ptr1, 0, 0, int((2*self.MyRadianToGradus(phi))+0.5), 492)


В результате возникли ошибки:
1 ошибка:
ptr1[j].append(struct.unpack("B", bf[j]))
IndexError: sip.voidptr object has an unknown size
2 ошибка:
Tochka.drawImage(0, 0, ptr1, 0, 0, int((2*self.MyRadianToGradus(phi))+0.5), 492)
TypeError: arguments did not match any overloaded call:
QPainter.drawImage(QRectF, QImage, QRectF, Qt.ImageConversionFlags flags=Qt.AutoColor): argument 1 has unexpected type 'int'
QPainter.drawImage(QRect, QImage, QRect, Qt.ImageConversionFlags flags=Qt.AutoColor): argument 1 has unexpected type 'int'
QPainter.drawImage(QPointF, QImage, QRectF, Qt.ImageConversionFlags flags=Qt.AutoColor): argument 1 has unexpected type 'int'
QPainter.drawImage(QPoint, QImage, QRect, Qt.ImageConversionFlags flags=Qt.AutoColor): argument 1 has unexpected type 'int'
QPainter.drawImage(QRectF, QImage): argument 1 has unexpected type 'int'
QPainter.drawImage(QRect, QImage): argument 1 has unexpected type 'int'
QPainter.drawImage(QPointF, QImage): argument 1 has unexpected type 'int'
QPainter.drawImage(QPoint, QImage): argument 1 has unexpected type 'int'
QPainter.drawImage(int, int, QImage, int sx=0, int sy=0, int sw=-1, int sh=-1, Qt.ImageConversionFlags flags=Qt.AutoColor): argument 3 has unexpected type 'sip.voidptr'

Сообщение отредактировал zuze - 10.6.2013, 15:41
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


6 чел. читают эту тему (гостей: 6, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 24.11.2024, 23:38