我必须创建一些图像作为没有自己的图像/图片的文章的占位符。我已经在 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 应用程序中创建带有文本的图像。
图像如下所示:
提前感谢每一个有用的提示。
最佳答案
对于您提供的这张特定图像,这将完成这项工作:
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/