[SWT] Probleme mit transparenten PNGs in ToolBar

rohrbold

Mitglied
Hallo beisammen,

ich nutze für die ToolBar Icons meiner Applikation transparente PNGs, die unter Linux mit GTK wirklich nett aussehen. Allerdings klappt das mit den Bildchen nicht so gut unter Windows -- zwar wird kein Hintergrund gezeichnet, aber die Ränder wirken verpixelt, wie folgendes Beispiel zeigt:
Linux/GTK ToolBar Icons
Windows XP ToolBar Icons
Eines der Icons.
Ich nutze für die Einbindung der Grafiken folgendes Codefragment:
Code:
toolItem = new ToolItem(this.toolBar, SWT.PUSH);
ImageData imageData = new ImageData(filename);
Image image = new Image(SWTGeoGUI.iDisplay, imageData);
toolItem.setImage(image);
Sobald ich GIF benutze, scheint es wohl besser zu klappen, allerdings stehen dann nur 256 Farben zur Verfügung, was die Grafiken nicht besser aussehen lässt.

Klappt es bei jemandem besser, dieses PNG Icon -- ähnlich wie unter Linux/GTK -- schön geglättet aussehen zu lassen?

Martin
 
Das Problem ist also bekannt und zum Teil gelöst. Unter Windows XP gibt es die Möglichkeit, eine manifest Datei im JRE bin-Verzeichnis abzulegen. Dadurch werden PNGs mit alpha Kanälen auch unter Windows XP ToolBars sehr weich gezeichnet.

Problematisch ist das natürlich in zweierlei Hinsicht. Zum einen sollte für ein kleines SWT Programm nicht zwingend Schreibzugriff auf das bin-Verzeichnis nötig sein. Zum anderen weiß ich nicht, wie sich die Lage unter älteren Windows Versionen verhält. Ich nehme einmal an, dass es dort natürlich nicht zufällig funktioniert ...
 
Hallo!

Die Datei javaw.exe.manifest findet man auch im Eclipse Verzeichnis:
Beispielsweise hier für Eclipse 3.0.x
E:\eclipse\3.0.2\eclipse\plugins\org.eclipse.swt.win32_3.0.2\os\win32\x86
und hier für Eclipse 3.1:
%ECLIPSE_HOME%\plugins\org.eclipse.swt.win32.win32.x86_3.1.0.jar!\java.exe.manifest
(Ist also im entsprechenden SWT-jar enthalten).

Problematisch ist das natürlich in zweierlei Hinsicht. Zum einen sollte für ein kleines SWT Programm nicht zwingend Schreibzugriff auf das bin-Verzeichnis nötig sein. Zum anderen weiß ich nicht, wie sich die Lage unter älteren Windows Versionen verhält. Ich nehme einmal an, dass es dort natürlich nicht zufällig funktioniert ...
Das ist kein wirklich großes Problem... man kann ja immernoch ein "eigenes" JRE mitausliefern, dass im Eclipse-Verzeichnis schlummert. Das braucht man dann noch nicht mal zu installieren. Man muss nur Eclipse (bzw. dem launcher) mitteilen, dass man diese bestimmte JRE Version verwenden möchte.Dann hat man auch keine Probleme falls ein Benutzer ein eventuell unpassendes JRE installiert, da immer das mitgelieferte JRE gezogen wird.

Gruss Tom
 

Neue Beiträge

Zurück