次のコードがあります。ファイルダイアログがポップアップ表示 - - ユーザーがフォーマットやファイルを選択 - システムはQPixmapの上にプロットを描画します - ファイルにQPixmapのを保存します: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);
}
}
ので、パスはこのようなものです。
PNGとBMPは問題なく動作しますが、JPEG、jpg、JPGなどの場合は問題ありません。
私はすべてQtのドキュメントを読んでいましたが、詳細は見つかりませんでした。それはうまくいくはずです。 アイデア
私はQtの商用版4.5.1をWindows用に使用しています。
私はDLLを使用していますが、Qtはパスにありません。
私は、他のライブラリで使用されている古典的なサードパーティのjpeg.lib(Independent JPEG GroupのJPEGソフトウェア)に静的にリンクしていることに気付きました。
このために競合が発生する可能性はありますか?
または、単にプラグインが正しくロードされていないことです。
私は最後に、qtプラグインディレクトリのimageformatsフォルダをプロジェクトディレクトリに配置し、次にリリースの軌跡に入れて整理することもできます。 –