QPixmap will keine Bilder mit Pfadangaben

Alles rund um die Programmierung mit Qt
Antworten
ms47
Beiträge: 35
Registriert: 22. Januar 2009 10:02

QPixmap will keine Bilder mit Pfadangaben

Beitrag 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
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Ist es auch wirklich in jpg? Bzw. kannst Du überhaupt jpg's laden --> QImageReader::supportedImageFormats ()
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
RavenIV
Beiträge: 267
Registriert: 21. Januar 2009 14:24
Wohnort: Waldshut

Beitrag von RavenIV »

versuch mal, die "/" durch "//" zu ersetzen.
Vielleicht hilft das ja.
Linux, das längste Text-Adventure aller Zeiten
ms47
Beiträge: 35
Registriert: 22. Januar 2009 10:02

Beitrag 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
androphinx
Beiträge: 170
Registriert: 26. Januar 2009 09:19
Wohnort: 127.0.0.2

Beitrag 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 ;)
ms47
Beiträge: 35
Registriert: 22. Januar 2009 10:02

Beitrag 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
Antworten