Domanda

Ho il seguente codice.

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);
   }
}

Quindi, il percorso è in questo modo: - finestra di dialogo File apre - gli utenti di selezionare il formato e il file - il sistema attinge trama sul QPixmap - Salva QPixmap nel file

.

Si lavora per PNG e BMP senza un problema, ma per JPEG, JPG, JPG, ecc fallisce.

Sono stato tutto la documentazione Qt, ma non sono riuscito a trovare alcun dettaglio. Si deve solo lavorare. Tutte le idee?

Sto usando Qt edizione commerciale, 4.5.1 per Windows.
Sto usando DLL, Qt non è sul percorso.

Ho appena realizzato che stanno collegando staticamente ad un jpeg.lib classica 3rd party (software JPEG del gruppo indipendente JPEG), che viene utilizzato da altra libreria.

E 'possibile che un conflitto o qualcosa si pone a causa di questo?

O è semplicemente che plugin non è caricata correttamente.

È stato utile?

Soluzione

probabilmente cant trovare il plugin ...

è possibile aggiungere percorso di libreria al progetto o si può semplicemente mettere imageformats cartella vicino al binario.

cartella imageformats è in plugins ..

(probabilmente non puoi visualizzare immagini jpeg troppo)

Altri suggerimenti

Se si sta facendo un accumulo di elettricità statica, si deve aggiungere QTPLUGIN += qjpeg al file .pro, in modo che la libreria jpeg statica dei imageformats è collegata con l'applicazione.

Il plugin è molto probabile che manca, modo migliore per lavorare è solo da sfogliare formati di immagine che il toolkit supporta.

Questo esempio è dalla mia immagine inserto, ma si dovrebbe essere in grado di adattarlo per il vostro Salva con nome:

QString fileFormats = "(";
/* Get all inputformats */
for (int i = 0; i < QImageReader::supportedImageFormats().count(); i++) {
    fileFormats += "*."; /* Insert wildcard */
    fileFormats
            += QString(QImageReader::supportedImageFormats().at(i)).toLower(); /* Insert the format */
    fileFormats += " "; /* Insert a space */
}
fileFormats += ")";

QString fileName = QFileDialog::getOpenFileName(this, tr("Open Image"),
        currentPath, tr("Images ") + fileFormats);

Anche a volte ci perdiamo formati se uno sviluppatore copia un debug a una macchina QA. La versione di debug sarà alla ricerca dei plugin di debug e non riescono a caricarli.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top