Airport1 hat geschrieben:PNG waer wirklich das Beste, grade wegen der mehrerer Transparenzen.. aber aufgrund des daemlichen IE .. kann mans weiterhin nicht "AllBrowserCompatible" einsetzen.
Nein, in der Praxis lässt sich dem IE relativ leicht akzeptabler Umgang mit PNG-Transparenz beibringen.
PNG unterstützt
drei Varianten von Transparenz:
1. Als Alphakanal, also pro Pixel wird zusätzlich zur Farbe auch seine Transparenz gespeichert (nur für RGB- (Vollfarben-) und Graustufenbilder).
2. Als Farbangabe, dabei wird eine Farbe angegeben, die transparent dargestellt werden soll (nur für RGB- und Graustufenbilder).
3. Als Liste bei Bildern mit Farbpalette (2 bis 256 Farben), dabei kann zu jedem Eintrag in der Farbpalette ein Eintrag in einer Transparenzpalette gespeichert werden.
Jason Summer hat eine
Sammlung von PNG-Testbildern angelegt, die das Verhalten des IE schön demonstrieren.
Mit Punkt 2, der einzelnen, transparenten Farbe, kann der IE überhaupt nicht umgehen (Abschnitte "binary transparency"). Das ist allerdings nicht gravierend, weil sich das Problem durch Punkt 1 umgehen lässt, wenn auch mit größeren Dateien. Vollfarbbilder bietet GIF davon unabhängig sowieso nicht, so dass es unter dem Gesichtspunkt des GIF-Ersatzes wurscht ist, ob die Transparenz nun funktioniert oder nicht.
Mit Punkt 3, der Transparenzpalette, kann der IE halbwegs umgehen, er stellt allerdings jede Farbe, die auch nur ansatzweise transparent sein soll, vollständig transparent dar (Demos T1 und T2).
Nichtsdestotrotz lässt sich schon damit GIF ersetzen, denn auch GIF bietet nicht mehr als volle Transparenz und 256 Farben.
Bei Punkt 1, dem Alphakanal, gibt es zwei Möglichkeiten:
a) Der IE kann zwar von Haus aus keine Transparenz zu bildfremden Hintergründen darstellen, aber es funktioniert mit einer bildeigenen Hintergrundfarbe (Demos T3/T5 und G1/G3).
Wählt man diese Hintergrundfarbe entsprechend der dominierenden Hintergrundfarbe der Webseite und weist das Bild nicht allzu viel transparente Fläche auf, kann man den Alphakanal meist nutzen, ohne, dass der Fehler gravierend auffällt.
Diese Standardhintergrundfarbe wird nicht in den eigentlichen Bilddaten definiert, sondern separat in der PNG-Datei unter der Kennung
bKGD abgelegt. Sie lässt sich mit einem Programm wie Jasons
TweakPNG setzen, nur manchmal auch in Malprogrammen.
b) Kommt man um stufenlose Transparenz vor gemustertem Hintergrund nicht herum, helfen die
IE7-Skripte, die dem IE ganz nebenbei auch noch besseren Umgang mit CSS lehren. Aufwand: Ein paar Dateien auf den Webserver kopieren und in die betroffene Seite eine kurze Zeile einfügen.
Kurzum: GIF lässt sich nicht nur ohne weiteres durch PNG ersetzen, man kann auch den PNG-Alphakanal im IE in der Praxis fast ohne Einschränkungen und mit geringem Aufwand nutzen. Als einzige GIF-Domäne bleiben kleine Animationen.
PS:
OptiPNG oder
pngcrush bringen es auch fertig, die bei einigen Malprogrammen reichlich aufgeblähten PNG-Dateien auf Größen unter denen von entsprechenden GIF-Dateien zu einzudampfen (natürlich verlustfrei).