crossplatform.ru

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

> Ошибка при использовании метода setPixel класса QImage, Python
zuze
  опции профиля:
сообщение 22.3.2013, 9:09
Сообщение #1


Участник
**

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

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




Репутация:   0  


# Глобальная переменная
im3 = QtGui.QImage(985, 985, QtGui.QImage.Format_ARGB32)

# В функции
for j in range(0, 720, 1):
     bf.append([])
     for i in range(491, 0, -1):
          bf[j].append(fp.read(i+j))

          px = 492 + i * math.cos(self.MyGradusToRadian(j/2))
          py = 492 + i * math.sin(self.MyGradusToRadian(j/2))

          im3.setPixel(px, py, QtGui.QColor(bf[j], bf[j], bf[j], 255).rgba())


Ругаеться на строчку

im3.setPixel(px, py, QtGui.QColor(bf[j], bf[j], bf[j], 255).rgba())


Ошибка:
QColor(Qt.GlobalColor): argument 1 has unexpected type 'list'
QColor(int): argument 1 has unexpected type 'list'
QColor(QVariant): too many arguments
QColor(): too many arguments
QColor(int, int, int, int alpha=255): argument 1 has unexpected type 'list'
QColor(QString): argument 1 has unexpected type 'list'
QColor(QColor): argument 1 has unexpected type 'list'

Я пытался в интернете или в книгах найти примеры, но что-то не нашёл.
Подскажите пожалуйста, как поправить?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
lanz
  опции профиля:
сообщение 25.3.2013, 8:56
Сообщение #2


Старейший участник
****

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

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




Репутация:   8  


Цитата
IndexError: tuple index out of range

Значит что в tuple нет такого элемента.

"B" означает, что считывается один беззнаковый байт и на выходе получаем tuple с одним элементом, поэтому мы не можем использовать j как индекс.
bf = struct.unpack("B", fp.read(1))
im3.setPixel(px, py, QtGui.QColor(bf[0], bf[0], bf[0], 255).rgba())
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- zuze   Ошибка при использовании метода setPixel класса QImage   22.3.2013, 9:09
- - lanz   Ой ой ой bf[j].append(fp.read(i...   22.3.2013, 9:28
- - zuze   Цитата(lanz @ 22.3.2013, 9:28) Вот это за...   22.3.2013, 9:36
- - lanz   Цитатаread читает число байт равное своему аргумен...   22.3.2013, 10:33
- - zuze   Цитата(lanz @ 22.3.2013, 10:33) Да, не ра...   22.3.2013, 11:04
- - lanz   Надо преобразовать считываемое значение в целое: c...   22.3.2013, 11:39
- - zuze   Цитата(lanz @ 22.3.2013, 11:39) Надо прео...   22.3.2013, 12:18
- - lanz   А что за файл, что в нем содержится? И в каком фо...   22.3.2013, 15:02
- - zuze   Цитата(lanz @ 22.3.2013, 15:02) А что за ...   22.3.2013, 15:09
- - lanz   Проще всего использовать модуль struct http://docs...   22.3.2013, 15:28
- - zuze   Я сделал так: print struct.unpack("B...   25.3.2013, 7:57
- - lanz   http://docs.python.org/2/library/struct.html Цитат...   25.3.2013, 8:33
- - zuze   Цитата(lanz @ 25.3.2013, 8:33) Чтобы полу...   25.3.2013, 8:54
- - lanz   ЦитатаIndexError: tuple index out of range Значит ...   25.3.2013, 8:56
- - zuze   Цитата(lanz @ 25.3.2013, 8:56) "B...   25.3.2013, 9:00
- - lanz   Да, но считывается на каждой итерации только один ...   25.3.2013, 9:20
- - zuze   Цитата(lanz @ 25.3.2013, 9:20) А j влияет...   25.3.2013, 9:40
- - lanz   И зачем он тогда в bf[j]?   25.3.2013, 9:45
- - zuze   Цитата(lanz @ 25.3.2013, 9:45) И зачем он...   25.3.2013, 9:52
- - lanz   Нет. bf = struct.unpack("B", fp.read...   25.3.2013, 9:57
- - zuze   Цитата(lanz @ 25.3.2013, 9:57) Вовсе нет,...   25.3.2013, 10:11
- - lanz   setPixel сохраняет считанный байт в картинку. Т.е....   25.3.2013, 10:37
- - zuze   Цитата(lanz @ 25.3.2013, 10:37) setPixel ...   25.3.2013, 10:45
- - lanz   Нет, если надо скачать три компоненты цвета, то пр...   25.3.2013, 10:53
- - zuze   Цитата(lanz @ 25.3.2013, 10:53) Почему за...   25.3.2013, 10:59
- - Алексей1153   Цитата(zuze @ 25.3.2013, 13:59) Так как н...   25.3.2013, 11:17
- - zuze   Цитата(Алексей1153 @ 25.3.2013, 11:17) в ...   25.3.2013, 11:23
- - lanz   http://docs.python.org/2/library/stringio.html Нап...   25.3.2013, 11:57
- - zuze   Цитата(lanz @ 25.3.2013, 11:57) fp.read (...   25.3.2013, 12:29
- - lanz   Цитата(zuze @ 25.3.2013, 13:29) Я думал j...   25.3.2013, 12:43
- - zuze   Цитата(lanz @ 25.3.2013, 12:43) Какие лев...   25.3.2013, 12:56
- - zuze   Вот тут появилсась такая загвостка. # Глобальная ...   26.3.2013, 10:17
- - lanz   bf обновляется только в первой функции. Во второй ...   26.3.2013, 10:31
- - zuze   Цитата(lanz @ 26.3.2013, 10:31) Зачем дел...   26.3.2013, 10:34
- - lanz   Это возможно, только нужно добавлять в массив. bf...   26.3.2013, 10:52
- - zuze   Цитата(lanz @ 26.3.2013, 10:52) print вып...   26.3.2013, 11:06
- - lanz   bf[i].append(struct.unpack("B...   26.3.2013, 11:40
- - zuze   Цитата(lanz @ 26.3.2013, 11:40) Кстати ту...   26.3.2013, 12:52
- - lanz   Ну да, заполняем 491 элемент: for i in range(4...   26.3.2013, 13:09
- - zuze   Я сделал так: bf = [] def f1()...   26.3.2013, 13:22
- - lanz   Конечно, мы добавляем 720 списков: for j in range...   26.3.2013, 13:40
- - zuze   Цитата(lanz @ 26.3.2013, 13:40) for j in ...   26.3.2013, 13:53
- - lanz   Вот так: for j in range(0, 720, 1): ...   26.3.2013, 14:12
- - zuze   Поменял местами: bf = [] def f1(...   27.3.2013, 8:26
- - lanz   Странно, этот код у меня работает нормально. Точно...   27.3.2013, 8:44
- - zuze   Цитата(lanz @ 27.3.2013, 8:44) в какой ст...   27.3.2013, 9:00
- - lanz   Добавьте после: def f2(): global bf ...   27.3.2013, 9:18
- - zuze   Цитата(lanz @ 27.3.2013, 9:18) Добавьте п...   27.3.2013, 9:26
- - lanz   Добавьте в f2: for j in range(0, 720, 1)...   27.3.2013, 9:29
- - zuze   Цитата(lanz @ 27.3.2013, 9:29) Что выводи...   27.3.2013, 9:36
- - lanz   В функции f1 for i in range(491, 0, -1)...   27.3.2013, 10:12
- - zuze   Цитата(lanz @ 27.3.2013, 10:12) Происходи...   27.3.2013, 10:22
- - zuze   Почему вот так картинка выводится, когда я im выво...   27.3.2013, 13:44
- - lanz   Вот это px = 492 + i * math.cos(self.MyGradusT...   27.3.2013, 14:33


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


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




RSS Текстовая версия Сейчас: 25.11.2024, 16:11