Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PyQt:如何使用自定义消息生成光栅图像_Python_Pyqt_Qtgui_Qtcore - Fatal编程技术网

Python PyQt:如何使用自定义消息生成光栅图像

Python PyQt:如何使用自定义消息生成光栅图像,python,pyqt,qtgui,qtcore,Python,Pyqt,Qtgui,Qtcore,要生成实心灰色图像,我正在使用: def generate_image(filepath): img = QtGui.QImage(720, 405, QtGui.QImage.Format_RGB32) img.fill(QtCore.Qt.gray) img.save(filepath, 'JPG') 我想知道定制这个函数,将一条简单的文本消息置于灰色背景之上,会有多困难。我感谢你的意见 您只需使用a在图像上绘制: def generate_image(filepa

要生成实心灰色图像,我正在使用:

def generate_image(filepath):
    img = QtGui.QImage(720, 405, QtGui.QImage.Format_RGB32)
    img.fill(QtCore.Qt.gray)
    img.save(filepath, 'JPG')
我想知道定制这个函数,将一条简单的文本消息置于灰色背景之上,会有多困难。我感谢你的意见

您只需使用a在图像上绘制:

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')

Sputnix继续做好工作。我注意到,你有很多问题都有有效的有用答案,你既没有接受也没有投票。因此,这就是你感谢别人的方式(当然,通过回答别人的问题,但我知道不是每个人都对此感到满意)。在回答您的问题时接受答案也很重要,以结束问题。当然!我非常感谢大家的帮助,甚至是参加讨论!谢谢大家!!:)我只是有时候忘了更新老帖子。。。抱歉,这是这么好用的原因之一。谢谢你!一两天后,我一回到这个话题,我就会试试看!代码生成图像,但给出错误:QPaintDevice:无法销毁正在绘制的绘制设备painted@Sputnix. 它是无害的-只需将
painter.end()
添加到函数的末尾。非常好的调整!使用painter.end()它运行得非常完美!再次感谢!我会在img.save(filepath,'JPG')之前添加这一行。。。。由于if文件夹不存在,img.save()将不保存任何内容,但不会给出错误消息:if不存在os.path.exists(os.path.dirname(filepath)):os.makedirs(os.path.dirname(filepath))