Форум сайта python.su
Я так понимаю, нужно пользоваться 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_())
Офлайн
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 все просто.
Опишите хотя бы 2 и 4.
Офлайн
2. Поворот
m = QMatrix() m.rotate(90) image = image.transformed(m)
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)
Офлайн
тоже задание похожее с картинкой , смысл такой что нужно на обычную картинку сверху наложить другую картинку и вывести результат …программа для создания штрих код наклеек сама наклейка стандартная а вот штрих меняется не могу понять как реализовать
Офлайн