Seite 1 von 1

QPixmap will keine Bilder mit Pfadangaben

Verfasst: 11. Februar 2009 17:27
von ms47
Hallo,

folgender Code:

Code: Alles auswählen

QFile screenshotFile( "/tmp/screenshot.jpg" );
if( screenshotFile.exists() )
{
    QPixmap originalPixmap = QPixmap();
    qDebug() << originalPixmap.load( screenshotFile.fileName() );
    qDebug() << originalPixmap.load( "/tmp/screenshot.jpg" );
    labelScreenshot->setPixmap(originalPixmap.scaled(labelScreenshot->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation));
}
Mein Problem ist, dass bei der Debugausgabe oben immer ein false ausgegeben wird, obwohl die Datei existiert und die Rechte auch entsprechend gesetzt sind.
Was mache ich da verkehrt? Danke schon mal für jeden Tipp.

Gruß
Markus

Verfasst: 11. Februar 2009 18:21
von Christian81
Ist es auch wirklich in jpg? Bzw. kannst Du überhaupt jpg's laden --> QImageReader::supportedImageFormats ()

Verfasst: 12. Februar 2009 08:37
von RavenIV
versuch mal, die "/" durch "//" zu ersetzen.
Vielleicht hilft das ja.

Verfasst: 12. Februar 2009 11:44
von ms47
Danke für die Antworten.
Also eine Jpeg-Datei ist es auf jeden Fall und ich kann die auch sonst verwenden. Die Unterstützung sollte also gegeben sein.
Werde das aber, genauso wie mit den "//" heute Abend mal ausprobieren und anschließend Bericht erstatten.

Gruß
Markus

Verfasst: 12. Februar 2009 12:07
von androphinx
Hallo erstmal,
also: ich kann mir im Moment nur vorstellen, dass das JPG-Plugin fehlt. Das mit dem "//" ist Blödsinn, weil das tritt nur bei Windows auf, weil dort haben wir den guten alten Backslash, der bekanntlich Steuerzeichen generiert, die wir in einem Dateinamen nicht haben wollen. Teste mal bitte einfach folgenden Code:

Code: Alles auswählen

#include <QApplication>
#include <QtDebug>
#include <QString>
#include <QFileDialog>
#include <QPixmap>

int main (int argc, char **argv)
{
  QApplication app (argc, argv);

  QPixmap *pixmap;

  QString file = QFileDialog::getOpenFileName();
  qDebug("Filename: %s", file);

  pixmap = new QPixmap (file);
  if(pixmap->isNull())
  {
    qFatal("Datei %s konnte nicht geladen werden!", file);
  }

  return 0;
} 
Ok spiele diesen Code mit verschiedenen Bildformaten durch. Bitmap müsste er mindestens laden können, dann probier JPG. Wenn das nicht funktioniert fehlt dir das entsprechende Plugin.

Mfg androphinx

PS: Mit dem getOpenFileName schließe ich aus, dass es an deiner Filename-Angabe lag / liegt ;)

Verfasst: 12. Februar 2009 16:47
von ms47
Mit deinem Code funktioniert das, allerdings mit meinem jetzt auch. Und das dumme dabei ist, ich weiß nicht warum :shock: Ich wüsste auch nicht, dass ich dabei etwas anders gemacht habe. Sowas blödes.
Aber erst einmal Danke für die Mühen.

Gruß
Markus