python - 如何在QT中创建带有文本和颜色的简单图像(QImage)并将其另存为文件

标签 python qt qpainter qimage

我必须创建一些图像作为没有自己的图像/图片的文章的占位符。我已经在 python 中实现了这一点,但我想再次在 qt 应用程序中编写代码。 python 代码正在运行,如下所示:

def createImage(text="Leer", pfad="", bildname="TextBild.jpg", colorname='red'):
    offset      = 20                                                                                                                                # weisses Textfeld um diesen Offset grösser darstellen
    bild        = Image.new('RGB', (width, height), colorname)
    draw        = ImageDraw.Draw(bild)
    font        = ImageFont.truetype("cour.ttf", 20)
    w,h         = draw.textsize(text, font)
    draw.rectangle((((width-w-offset)/2,(height-h-offset)/2),((width+w+offset)/2,(height+h+offset)/2)), fill='white')
    draw.text(((width-w)/2,(height-h)/2),text,'black',font)
##  print "Erzeuge: " + pfad + os.sep + bildname, "\nPfad:\t"+pfad, "\nBildname:\t"+bildname
    bild.save(pfad + os.sep + bildname) if os.path.exists(pfad) else bild.save(bildname)

但是如何在 Qt 中做到这一点呢?我知道有 QImage、QPainter 等,但我没有找到有用的示例。也许我会进行系统调用,以从 qt 应用程序中创建带有文本的图像。

图像如下所示:

enter image description here

提前感谢每一个有用的提示。

最佳答案

对于您提供的这张特定图像,这将完成这项工作:

QImage image(QSize(400,300),QImage::Format_RGB32);
QPainter painter(&image);
painter.setBrush(QBrush(Qt::green));
painter.fillRect(QRectF(0,0,400,300),Qt::green);
painter.fillRect(QRectF(100,100,200,100),Qt::white);
painter.setPen(QPen(Qt::black));
painter.drawText(QRect(100,100,200,100),"Text you want to draw...");
image.save("testImage.png");

关于python - 如何在QT中创建带有文本和颜色的简单图像(QImage)并将其另存为文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41904610/

相关文章:

linux - Linux 上 Qt 中的 Unity3D

c++ - 同一个指针的不同值

c++ - Qt 和 C++ 代码之间的数据传输

python - 如何在 PyQt4 的 QWidget 中使用 QPainter

c++ - 如何将图像加载到 painter.drawimage 函数

python - WTForms-用字符串值预填充文本区域字段?

python - runserver 上的 Django 数据库连接验证

Python如何将十六进制的 float 转换为十进制

python - 如何对单页应用使用 Flask-WTF CSRF 保护?

qt - QPainter::drawConvexPolgon 有什么意义