Qt 将文本转换为图像(如PNG或JPEG)
我需要帮助将静态文本写入图像文件,而不使用main()中的“QApplication app(argc,argv);”。我的QT版本是5.12.2 目前,我可以使用以下代码执行此操作:Qt 将文本转换为图像(如PNG或JPEG),qt,qt5,Qt,Qt5,我需要帮助将静态文本写入图像文件,而不使用main()中的“QApplication app(argc,argv);”。我的QT版本是5.12.2 目前,我可以使用以下代码执行此操作: int main(int argc, char *argv[]) { QApplication app(argc, argv); QCoreApplication::addLibraryPath("./plugins"); QString imagePath(QStringLiteral("./images/ou
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QCoreApplication::addLibraryPath("./plugins");
QString imagePath(QStringLiteral("./images/output/testOutput1.png"));
QImage image(500, 400, QImage::Format_RGB888);
image.fill(Qt::red);
QPainter painter;
if (!painter.begin(&image))
return;
painter.setPen(QPen(Qt::black));
painter.setFont(QFont("Times", 12, QFont::Bold));
painter.drawText(image.rect(), Qt::AlignCenter, "writing text on image");
painter.end();
image.save(imagePath);
return 0;
}
我试图得到一个类似的解决方案,它在我的代码中不使用“QApplicationApp(argc,argv);”
当前,如果我删除“QApplication app(argc,argv);”的减速,我的代码将在“painter.drawText(…);”崩溃。您所能做的最多就是将
QApplication
交换为QGuiApplication
(从而避免了来自QtWidgets模块的无用依赖)
Qt在QCoreApplication
(对于QtCore stuff)/QGuiApplication
(对于QtGui stuff)/QApplication
(对于QtWidgets stuff)的内部初始化其大部分静态/全局内容;每个源于另一个,因此如果您有一个QApplication
,那么您已经拥有了Gui和Core的所有内容
字体引擎(以及其他与绘画相关的东西)在qgui应用程序中初始化
请注意,QGuiApplication
实例必须存在,才能使用QFont
因此,如果不实例化它(或从它派生的类),就不能进行绘制