我正在尝试使用QImage从文本创建图像。
根据此处的文档: http://doc.qt.io/qt-5/qimage.html#Format-enum
我们不能将QImage::Format_Indexed8
与QImage一起使用。
由于质量低,我无法使用QImage::Format_Mono
或QImage::Format_MonoLSB
。
我的问题是:
答案 0 :(得分:5)
以下是执行此操作的示例代码:
QImage image(100, 50, QImage::Format_ARGB32_Premultiplied);
QPainter painter(&image);
painter.fillRect(image.rect(), Qt::yellow);
painter.drawText(image.rect(), Qt::AlignCenter | Qt::AlignVCenter, "hello, world");
image.save("output.png");
它会创建此图像:
输出格式为PNG,因此它具有良好的压缩效果而不会失去任何质量。
答案 1 :(得分:1)
这个例子展示了如何使用QPainter::drawText
并使用字体:
http://doc.qt.io/archives/qt-4.7/painting-fontsampler.html
QImage::save
支持各种格式和质量级别:
http://doc.qt.io/archives/qt-4.7/qimage.html#reading-and-writing-image-files
虽然QImage
在QtCore中,QPainter
和文本绘制例程在QtGUI中。因此,在Linux系统上,这将需要运行X服务器:
http://www.qtcentre.org/threads/1758-QPainter-in-console-apps