5

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

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

我们不能QImage::Format_Indexed8与 QImage 一起使用。我不能使用QImage::Format_MonoQImage::Format_MonoLSB由于它的低质量。

我的问题是:

  • 创建文本图像(批处理)以便我们能够以最小的文件大小获得体面的质量的最佳方法是什么?
  • 创建图像后,有什么方法可以通过 QT 进行图像压缩以减小文件大小?
4

2 回答 2

7

这是一个示例代码:

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

于 2015-10-27T07:17:41.497 回答
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

于 2011-09-24T10:48:51.580 回答