我有以下代码。
QString fileName = QFileDialog::getSaveFileName(
this,
tr("Output Image file"),
(""),
tr("PNG (*.png);;JPEG (*.JPEG);;Windows Bitmap (*.bmp);;All Files (*.*)")
);
if(fileName != "")
{
QwtPlot* pPlot = ...
QSize size = pPlot->size();
QRect printingRect(QPoint(0, 0), size);
QPixmap pixmapPrinter(size);
pixmapPrinter.fill(Qt::white);
{
QPainter painter(&pixmapPrinter);
pPlot->print(&painter, printingRect);
}
bool isOk = pixmapPrinter.save(fileName);
if(!isOk)
{
QString msgText = tr("Failed to write into ") + fileName;
QMessageBox::critical(this, tr("Error Writing"), msgText);
}
}
所以,路径是这样的: - 弹出文件对话框 - 用户选择格式和文件 - 系统在 QPixmap 上绘制绘图 - 将 QPixmap 保存到文件中。
它适用于 PNG 和 BMP 没有问题,但对于 JPEG、jpg、JPG 等,它会失败。
我翻遍了 Qt 文档,但找不到任何细节。它应该可以工作。有任何想法吗?
我正在使用 Qt 商业版 4.5.1 for Windows。
我正在使用 dll,Qt 不在路径上。
我刚刚意识到我正在静态链接到其他库使用的经典第 3 方 jpeg.lib(独立 JPEG 组的 JPEG 软件)。
是否有可能因此而发生冲突或其他事情?
或者只是插件没有正确加载。