Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » PyQt. Как обрабатывать изображения? [RSS Feed]

#1 Фев. 4, 2013 02:41:19

Guljaca
От:
Зарегистрирован: 2011-07-11
Сообщения: 93
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt. Как обрабатывать изображения?

Я так понимаю, нужно пользоваться QPainter и QTransform. Пытался читать документацию, но я просто не понимаю тамошний текст. Примеры, мною найденные, написаны на С++ и я не могу их переписать под PyQt. К тому же, сдается, мне, что с авто заполнением окна ничего не выйдет. “help()” порадовал, но не более.

1. Как вывести изображение, не заливая им окно и не используя QLabel (оставляет отступы при отображении)?
2. Как вращать изображение?
3. Как отразить его по вертикали и горизонтали?
4. Как изменить альфа канал (могу ошибиться. Суть, пример, создать изображение в алых тонах)?
5. (Без этого, впрочем, можно и обойтись). Исказить изображения, например, до трапециевидного.

Можете что-нибудь посоветовать почитать по этой теме? Не обязательно на русском. Читал от “Прохоренок Н.А.”, но тут рассматривается поверхностно, а примеры, есть только вначале.

Покажите пример на этом коде:

from PyQt4.QtGui import *
from PyQt4.QtCore import *
import sys
app = QApplication(sys.argv)
class Shell(QWidget):
    def __init__(self, xmax, ymax, parent=None):
        QWidget.__init__(self, parent)
        self.resize(xmax,ymax)
class Image(QWidget):
    def __init__(self, img, xmax, ymax, parent=None):
        QWidget.__init__(self, wShell)
        self.resize(xmax,ymax)
        image = QImage(img)
        image = image.scaled(xmax,ymax)
        pal = self.palette()
        pal.setBrush(QPalette.Background,QBrush(image))
        self.setPalette(pal)
        self.setAutoFillBackground(True)
if __name__ == '__main__':
    wShell = Shell(500,500)
    wImage = Image('1.png',300,300)
    wShell.show()
    sys.exit(app.exec_())



Офлайн

#2 Фев. 4, 2013 08:03:38

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

PyQt. Как обрабатывать изображения?

1 - не очень понял. кроме лэйблов есть http://doc.qt.digia.com/qt/qgraphicsscene.html
2, 5 - http://doc.qt.digia.com/qt/qimage.html#transformed + http://doc.qt.digia.com/qt/qmatrix.html или http://doc.qt.digia.com/qt/qtransform.html
3 - http://doc.qt.digia.com/qt/qimage.html#mirrored
4 - Можно залить картинку полупрозрачным цветом http://doc.qt.digia.com/qt/painting-imagecomposition.html

Guljaca
Покажите пример на этом коде:
Много писать, примеры есть в документации.

Офлайн

#3 Фев. 4, 2013 13:03:05

Guljaca
От:
Зарегистрирован: 2011-07-11
Сообщения: 93
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt. Как обрабатывать изображения?

Примеры для С. Не читабельны из-за полного отсутствия познаний в языке.
По 3 все просто.
Опишите хотя бы 2 и 4.



Офлайн

#4 Фев. 4, 2013 13:42:38

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

PyQt. Как обрабатывать изображения?

2. Поворот

m = QMatrix()
m.rotate(90)
image = image.transformed(m)

4.
result = QImage(xmax, ymax, QImage.Format_ARGB32_Premultiplied)
painter = QPainter(result)
painter.drawImage(0, 0, image)
painter.setCompositionMode(QPainter.CompositionMode_SourceOver)
painter.fillRect(result.rect(), QColor(0xff, 0x6e, 0xc7, 60)) # neonpink
painter.end()
image = result

Отредактировано reclosedev (Фев. 4, 2013 13:48:13)

Офлайн

#5 Янв. 18, 2018 01:10:56

Linkor
Зарегистрирован: 2018-01-12
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt. Как обрабатывать изображения?

тоже задание похожее с картинкой , смысл такой что нужно на обычную картинку сверху наложить другую картинку и вывести результат …программа для создания штрих код наклеек сама наклейка стандартная а вот штрих меняется не могу понять как реализовать

Офлайн

  • Начало
  • » GUI
  • » PyQt. Как обрабатывать изображения?[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version