SWT Image und Farbtiefe

DarkWizzard

Mitglied
Hallo,

ich habe ein kleines Problem mit SWT.
Undzwar habe ich ein Bild auf der Festplatte (test.png) mit 32 bit Farbtiefe. Das wird mir sowohl vom Explorer als auch von InfranView bescheinigt.

Wenn ich das Bild allerdings ganz normal lade hab ich nur noch ne Farbtiefe von 24 bit. Dabei werden aber Transparenz und ganz durchsichtige Bereiche richtig (bzw. im Fall von komplett durchsichtigen Bereichen halt eben nicht ;)) angezeigt.

Code:
Image img = new Image(display, "D:/test.png");
ImageData iData = img.getImageData();
System.out.println("depth: "+iData.gepth);

Das Ergebnis sieht dann so aus:
> depth: 24

Das kann ich aber eigentlich nicht gebrauchen, sondern das muss schon als 32 bit geladen werden. Hat jemand ne Idee was man da machen kann? Es würde im Prinzip auch reichen, wenn ich die richtige Farbtiefe manuell irgendwie auslesen könnte (dann aber für alle Bildformate die SWT kann, nicht nur für png), den Rest krieg ich dann auch locker manuell hin.


MfG,
DarkWizzard
 
Hallo,

Das geladene Bild hat soviel ich weiss schon noch die korrekte Farbtiefe, das ImageData-Objekt ist aber auf den Bildschirm "spezialisiert"...

Gefunden auf: http://www.eclipse.org/articles/Article-SWT-images/graphics-resources.html

Nachtrag:
Java:
Image img = new Image(display, "D:/test.png");
Dein Bild wird ja hier explizit auf das Display gesetzt.

Versuchs mal mit:
Java:
Image img = new Image(null, "D:/test.png");

Freundliche Grüsse
CKingzesi
 
Zuletzt bearbeitet:
Woah, du bist mein Held CKingZesi :D

Funktioniert genau so wie du sagst. Ich wär nie auf die Idee gekommen dem null zu übergeben weil ich schon oft genug gemerkt hab dass SWT einem bei sowas gern ins Gesicht spuckt.
 

Neue Beiträge

Zurück