J'ai le code suivant.Sauvegarde de QPixmap en échec 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);
}
}
Ainsi, le chemin est comme ceci: - dialogue Fichier affiche - les utilisateurs sélectionne le format et le fichier - le système tire terrain sur QPixmap - Enregistre QPixmap dans le fichier.
Cela fonctionne pour PNG et BMP sans problème, mais pour JPEG, jpg, JPG, etc. il échoue.
J'étais partout dans la documentation de Qt mais n'ai pu trouver aucun détail. Ça devrait juste marcher. Des idées? J'utilise Qt commercial edition, 4.5.1 pour Windows.
J'utilise dlls, Qt n'est pas sur le chemin. Je viens de me rendre compte que je suis en train de relier statiquement à un jpeg.lib tiers classique (logiciel JPEG de The Independent JPEG Group), qui est utilisé par une autre bibliothèque.
Est-il possible qu'un conflit ou quelque chose se produise à cause de cela?
Ou c'est simplement que le plugin n'est pas chargé correctement.
Je pense qu'à la fin, nous arrivons à trier en mettant le dossier imageformats du répertoire qt plugins dans le répertoire du projet, puis aussi dans la trajectoire de publication. –