Bild in QPixmap laden funzt nicht richtig

Alles rund um die Programmierung mit Qt
Antworten
Davidave
Beiträge: 33
Registriert: 26. Februar 2005 17:26

Bild in QPixmap laden funzt nicht richtig

Beitrag von Davidave »

Hallo mal wieder.
Ich habe eine Frage und wuerde euch gerne zu Rate ziehen:

In einem QLabel moechte ich ein Bild darstellen.
Fuer einige Formate klappt das wunderbar, fuer viele andere nicht (bricht dann mit Segmentation Fault ab, weil ich spaeter die nat. leere Pixmap benutzen moechte)
Bitmaps z.B. klappen, jpgs, gifs nicht.
Ich arbeite unter SUSE 9.2 mit QT3

Zum Laden der Bilder habe ich einen QFileDialog mit FileFilter benutzt (*.PNG, *.JPG, usw).
  
Hier der simple code dazu im Label:

///////////////////////////////////////////////////   
//imago ist ein QImage, bild ist eine QPixmap  
imago.load(actualPath);        
bild = imago;      
if(imago.isNull()) cout<<"imago ist NULL"<<endl;  
//////////////////////////////////////////////////
  
wenn ich jpgs etc lade kommt die cout-Anweisung (s.o.)
Die Pfade zu den Bildern habe ich ueberprueft, klappen.

Ich habe mir mal zusaetzlich das FileFormat des zu ladenden Bildes ausgeben lassen:  
cout<<imago.imageFormat(actualPath)<<endl;  
  
Bei "Pic.bmp" steht dann: BMP  
Bei "Pic.png": PNG  
Bei einem jpg kommt garnichts.  
Und hier das seltsame: bei einem anderen jpg, was komischerweise darzustellen geht, steht: PGMRAW  
  
An Zugriffsrechten koennte es doch eher nicht liegen, oder? Habe die des nicht funkt.  jpg den Rechten des funktionierende jpg angepasst, ohne Erfolg.

Ich kann mir nicht vorstellen, dass man in QT bzw in ein QImage kein JPG oder GIF laden kann.

Habt ihr eine Ahnung?
Gruesse!
  
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Das sind Plugins. Sind die Plugins installiert?

Gifs könnte allerdings auch durchaus gar nicht unterstützt werden, kommt darauf an, wie SuSE Qt gebaut hat, bei Debian ist z.B. gif per Default nicht enthalten.
Davidave
Beiträge: 33
Registriert: 26. Februar 2005 17:26

Beitrag von Davidave »

Hmm, ehrlich gesagt habe ich keine Ahnung.
Wie kann ich das herausfinden, ob ich PlugIns drin habe und wenn welche?

In qt/plugins/imageformats:
libqjpeg.so und libqmng.so

Ps:QtVersion 3.3.2

Hilft das???
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Ja, das hilft, also ist jpg und mng vorhanden. Gif wird also generell nicht gehen. So, warum geht nun das jpeg nicht...

Das ist eine gute Frage, die ich leider auch nicht beantworten kann, ich kann nur mutmaßen, dass es defekt ist oder zu groß oder das Plugin von Qt dazu nicht geladen wird.
Davidave
Beiträge: 33
Registriert: 26. Februar 2005 17:26

Beitrag von Davidave »

Habe mal paar andere jpgs getestet, gehen auch nicht.
Wie kann ich nachschauen, ob bestimmte PlugIns geladen sind?
Muss ich was im Code includen?

Kenne mich damit kaum aus, wie man unschwer erkennt :)
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Davidave
Beiträge: 33
Registriert: 26. Februar 2005 17:26

Beitrag von Davidave »

Habe das mal probiert und folgendes ist in der StrList:
BMP
PBM
PGM
PNG
PPM
XBM
XPM

Kein JPG *heul*
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Es sieht so aus als würden die Plugins nicht geladen werden... mhhh
QTDIR nicht korrekt gesetzt? Schau Dich mal ein bischen um evtl. findest Du ja wo die Plugins sein müssen damit Qt sie findet... habe leider atm keine Ahnung.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Davidave
Beiträge: 33
Registriert: 26. Februar 2005 17:26

Beitrag von Davidave »

Danke, ich werde mich nochmal umschauen.
Kann sein, dass einige Pfade nicht korrekt eingestellt wurden.
Thx!
Antworten