PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : möglichst browserunabhängig transparente pngs überlappen



schoppenhauer
03-03-2007, 23:07
Hallo.

Ich hätte eine Frage. Und zwar will ich ein Raster mit <table> machen, wobei in jeder Zelle ein quadratisches Bild angezeigt werden soll... Das Problem ist: Das Bild soll ggf. aus überlagerten PNG-Dateien bestehen, d.h., in den Zellen dieses Tables sollen sich transparente Grafiken am Ende überlappen...

Bzw... Ob ich das wirklich mit einem Table machen will, ist eh die Frage... Vielleicht reihe ich die Bilder auch einfach normal aneinander und unterdrücke das Scrolling... Das sollte einen ähnlichen Effekt haben.

Wie ich es auch mache (das wird sich auch danach richten, womit es wohl am Besten geht):

Wie kriegt man sowas - möglichst browserunabhängig - hin?
(Kann man z.B. relativ zu der Zelle die Koordinaten des Bildes angeben?)

Es sollte nur nach Möglichkeit von allen gängigen Browsern unterstützt werden, z.B. w3c-Standard sein oder so. (Am Liebsten wäre mir, wenn es kein CSS benutzt).

mamue
04-03-2007, 10:28
Transparente PNG werden vom IE nicht unterstützt (IE 7 vielleicht?), es gibt aber scheinbar work arounds dafür. Wenn Du aber schon CSS vermeiden möchtest, werden Dir diese Workarounds aber erst recht nicht gefallen, fürchte ich.

mamue

schoppenhauer
04-03-2007, 19:29
Naja gut... Dann nehme ich halt extra dafür transparente GIFs... Die unterstützt wohl der Internet Explorer... Und ein Stück weit muss ich sagen: Transparente PNGs kann selbst ich in meine Anwendungen, wenn ich sie denn programmiere, einbauen... Dann sollten die MS-Programmierer es doch auch schaffen.
Und der den Internet Explorer verwendet, der ist selber schuld ;-).
Nein im Ernst... Ich nehme mal an, dass der Internet Explorer das wohl früher oder später können wird.

Nunja... An sich... Also CSS stört mich auch nicht sooooo sehr, aber ich mochte CSS noch nie wirklich. Auch wenn ich damit ziemlich alleine darstehen dürfte: Ich mag auch Browser wie Links2, und möchte - wenn das /überhaupt/ möglich ist, auch davon unterstützung haben (zumindest im grafischen Modus)... Also wenn das möglich ist.

Also der Grund, warum ich das überhaupt brauche, ist ja eigentlich, weil ich eine Webanwendung zu Programmieren versuche... Und eben möglichst wenig Traffic verursachen will... Ich könnte (ich meine, das würde wieder ewig dauern und so, aber im Grunde ist es wohl nicht das Problem schlechthin) einfach per CGI die Grafiken herstellen, und dann jedes mal senden... Nur kann es vorkommen, dass sehr oft immer dieselben Grafiken angezeigt werden... Und wenn ich richtige PNGs oder GIFs nehme, werden die Gecachet... Bei CGI-Ausgaben weiß ich nicht, ob der Browser einen Cache anlegt...

Naja, danke mal so weit, aber... Nunja... Dann eben meinetwegen mit CSS... Wenns unbedingt sein muss... Aber es sollten halt so viele Browser wie möglich unterstützen, wenn Möglich auch links2 im grafischen Modus. Im Grunde ist das wie gesagt einfach nur ein Raster aus Grafiken der gleichen Größe...

Ich weiß halt nicht... Das Verlässlichste wird wohl wirklich das dynamische Generieren der Grafiken auf dem Server sein... Also das wird dann wohl zumindest die einzige Möglichkeit sein, die wohl alle grafischen Browser unterstützen... Ich schau mir dazu grad die GD Library an... Die ist nichtmal schwer... Allerdings scheine ich damit auch keine transparenten PNGs überlagern zu können... Wie schade. Krieg die Fehlermeldung "gd-png warning: alpha channel not supported"... Schade... Naja... Mit Transparenten Gifs geht das...

Naja... Ich bin über jeden Tipp dankbar.

mamue
05-03-2007, 15:13
Transparente gifs sind aber eher eine andere Liga, oder? Die haben keine echte Transparenz, weil sie eben keine "Alpha"-Kanal haben, der die Deckung festlegt. Gifs haben nur transparente Bereiche/Farben. Andere Bereiche sind somit niemals durchscheinend.

mamue

schoppenhauer
05-03-2007, 16:33
Transparente gifs sind aber eher eine andere Liga, oder? Die haben keine echte Transparenz, weil sie eben keine "Alpha"-Kanal haben, der die Deckung festlegt. Gifs haben nur transparente Bereiche/Farben. Andere Bereiche sind somit niemals durchscheinend.

Jo... Ich dachte immer, es gibt ne Maske (also quasi sowas wie einen "1-bit-alphakanal"), aber was solls. Ich brauche keine Alphakanäle, und der Vorteil von Gifs ist eben: Ich gebe zwar PNG-grafiken aus, nutze also nur Serverseitig GIFs, und libgd2 scheint mit alphawerten in PNGs nicht umgehen zu können... Deswegen benutz ich GIFs. Mir ist im Prinzip egal, was ich nutze, hauptsache, es geht.
Natürlich wären mir reine PNGs lieber... Zumal die GIF-Unterstützung etwas "happig" ist... Und außerdem GIFs technisch überholt sind. Aber libgd2 unterstützt nunmal keine Alphakanäle, dafür aber transparente GIFs... Ich denke mal, das wird sich in den nächsten Versionen ändern, aber tja... So lange...

Ich glaub, ich machs (da ich jetzt schon ein fertiges cgi-programm habe, das die Bilder ausgibt) jetzt wirklich serverseitig mit CGI... Das funktioniert sogar unter Links2 im grafischen Modus. Dann muss der Server halt etwas mehr Traffic aushalten - das ist ja bei Browser-Games ohnehin nicht sooo wichtig, auch wenns schade ist.