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')
Другие вопросы по тегам