次のコードがあります。
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のドキュメント全体を調べましたが、詳細を見つけることができませんでした. それはうまくいくはずです。何か案は?
Windows 用の Qt 商用版 4.5.1 を使用しています。
dll を使用していますが、Qt がパスにありません。
他のライブラリで使用されている古典的なサードパーティの jpeg.lib (The Independent JPEG Group の JPEG ソフトウェア) に静的にリンクしていることに気付きました。
これが原因で衝突とか何かが起こる可能性はありますか?
または、単にプラグインが正しく読み込まれていない可能性があります。