我有以下代碼。將QPixmap保存爲JPEG失敗(Qt 4.5)
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不在路徑上。
我剛剛意識到我靜態鏈接到一個經典的第三方jpeg.lib(獨立JPEG組的JPEG軟件),這是由其他庫使用。
是否有可能因此而引起衝突或其他事情?
或者它只是簡單的插件沒有正確加載。
我認爲最後我們設法將qt plugins目錄中的imageformats文件夾放到項目目錄中,然後在發佈軌跡中進行排序。 – 2010-01-22 18:25:17