PyQt: как создать растровое изображение с помощью специального сообщения
Для создания сплошного серого изображения я использую:
def generate_image(filepath):
img = QtGui.QImage(720, 405, QtGui.QImage.Format_RGB32)
img.fill(QtCore.Qt.gray)
img.save(filepath, 'JPG')
Интересно, насколько сложно было бы настроить эту функцию для наложения простого текстового сообщения поверх серого фона. Я ценю вклад!
1 ответ
Решение
Вам просто нужно использовать QPainter для рисования на изображении:
def generate_image(filepath, text='Hello World!', color='red', font=None):
img = QtGui.QImage(720, 405, QtGui.QImage.Format_RGB32)
img.fill(QtCore.Qt.gray)
painter = QtGui.QPainter(img)
painter.setPen(QtGui.QColor(color))
if font is None:
font = painter.font()
font.setBold(True)
font.setPointSize(24)
painter.setFont(font)
painter.drawText(img.rect(), QtCore.Qt.AlignCenter, text)
painter.end()
return img.save(filepath, 'JPG')