Наложение двух картинок
подскажите пожалуйста, как сделать такой алгоритм на pyqt5:
- Есть картинка
- Создаем ее прозрачную пустую копию по ee размерам.
- Рисуем на этой копии линии
- Накладываем на п.1
Я такое уже делал на с помощью PIL, сейчас решил переписать на pyqt5 (раз уж все равно на нем основная форма) и запутался в этих классах и функциях. Буду очень благодарен за направление куда дальше двигаться)
Ответы (1 шт):
Автор решения: gil9red
→ Ссылка
Шаги:
- Для рисования используйте QPainter
- Картинки можно загружать в QPixmap и на них же рисовать
- Цвет текста, при рисовании, настраивается через QPainter.setPen, а его размер через QPainter.setFont
- Чтобы картинка была полупрозрачной, если она изначально не полупрозрачная, можно использовать метод QPainter.setOpacity. Только после рисования картинки нужно вернуть значение
оpacity
Пример:
from PyQt5.QtWidgets import QApplication, QLabel
from PyQt5.QtGui import QPainter, QPixmap
from PyQt5.QtCore import Qt
app = QApplication([])
pixmap_map = QPixmap('map.jpg')
pixmap_transparent = QPixmap('transparent.png')
painter = QPainter(pixmap_map)
painter.save()
painter.setOpacity(0.7)
painter.drawPixmap(300, 300, pixmap_transparent)
painter.restore()
font = painter.font()
font.setPointSize(100)
painter.setFont(font)
painter.setPen(Qt.red)
painter.drawText(50, 150, "ПЛАН_1")
mw = QLabel()
mw.setPixmap(pixmap_map)
mw.show()
app.exec()
Результат (масштаб 50%):
Ссылки на картинки ответе:
- map.jpg: https://i.stack.imgur.com/8R7pM.jpg
- transparent.png: https://i.stack.imgur.com/xG9zK.png

