Найти - Пользователи
Полная версия: PyQt. Как обрабатывать изображения?
Начало » GUI » PyQt. Как обрабатывать изображения?
1
Guljaca
Я так понимаю, нужно пользоваться 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_())
reclosedev
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
Покажите пример на этом коде:
Много писать, примеры есть в документации.
Guljaca
Примеры для С. Не читабельны из-за полного отсутствия познаний в языке.
По 3 все просто.
Опишите хотя бы 2 и 4.
reclosedev
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
Linkor
тоже задание похожее с картинкой , смысл такой что нужно на обычную картинку сверху наложить другую картинку и вывести результат …программа для создания штрих код наклеек сама наклейка стандартная а вот штрих меняется не могу понять как реализовать
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB