繁体   English   中英

使用QImage(qt)生成文本图像

[英]Generating textual images using QImage (qt)

我正在尝试使用QImage从文本创建图像。

根据此处的文档: http//doc.qt.io/qt-5/qimage.html#Format-enum

我们不能将QImage::Format_Indexed8与QImage QImage::Format_Indexed8使用。 由于质量低,我无法使用QImage::Format_MonoQImage::Format_MonoLSB

我的问题是:

  • 创建文本图像(批处理)的最佳方法是什么,这样我们才能以最小的文件大小获得不错的质量?
  • 一旦创建图像以减小文件大小,是否有任何方法可以通过QT进行图像压缩?

以下是执行此操作的示例代码:

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,因此它具有良好的压缩性能而不会丢失任何质量。

这个例子,它向您展示了如何使用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM