Наложение двух картинок

подскажите пожалуйста, как сделать такой алгоритм на pyqt5:

  1. Есть картинка
  2. Создаем ее прозрачную пустую копию по ee размерам.
  3. Рисуем на этой копии линии
  4. Накладываем на п.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%):

введите сюда описание изображения

Ссылки на картинки ответе:

→ Ссылка