ThWboard Support-Forum (Archiv)

Ort: / Boardübersicht / PHP / MySQL Probleme / png transparent


Seite 1 von 1

bdominik schrieb am 11.10.2003 um 13:45 Uhr

Hallo Leute
ich habe ein Paar 100 PNG-Dateien vorliegen. Diese würde ich jettz gerne bei anzeigen Transparent machen. Transparenzfarbe ist immer die Farbe ganz links oben. Ich darf die Dateien dabei aber nicht verändern.

jetzt habe ich mir das Script hier geschrieben:

<?
$icon = imagecreatefrompng($icon);
$icon_transcolor = imagecolorat($icon,0,0);
imagecolortransparent($icon,$icon_transcolor);
header("Content-type: image/png");
ImagePNG($icon);
ImageDestroy($icon);
?>

dummerweise tut sich rein garnichts an dem Bild, der hintergrund bleibt farbig. Wie bekomme ich den Transparent?

danke und Grüße
TO

MrNase schrieb am 11.10.2003 um 14:17 Uhr

Ich denke es liegt daran, dass
a) du keine GD 2.* installiert hast
b) 'ImageCreateTrueColor()' vergessen hast
c) du nur '0,0' angeben hast, obwohl es '0,0,0' sein müsste (laut RGB)


hier steht einiges dazu

bdominik schrieb am 11.10.2003 um 19:22 Uhr

a) garantiert habe ich 2.x
b) brauche ich nicht, mit truecolor geht kein Transparent
c) Ich will auch nicht, ich will die Farbe an den Koorinaten 0,0 nehmen.
hier steht einiges dazu[/quote]

MrNase schrieb am 12.10.2003 um 00:44 Uhr

Ich hab mich auf den Beitrag von "marshall.AT.byterage.net" bezogen der ganz klar aussagt, das Transparenz mit Truecolor funktioniert. :)


bzgl. Koordinaten: kann sein, dass es total falsch ist, aber wie soll er die Koordinaten finden wenn er nicht weiß wie groß das Bild ist?!

Ich denke mir das so, ein Bild ist für ihn ein Bild. Er weiß nicht wo es anfängt und wo es aufhört. Wie soll er da "0" und "0" finden? So wäre es zumindestens logisch :)

Bluetooth schrieb am 12.10.2003 um 09:10 Uhr

Zitate von php.net:

I have found that ImageColorTransparent() works on true color images if and only if the transparent color is black.
(PHP 4.2.3/GD 2.0)

-----------

$black = ImageColorAllocate ($txt_img, 0, 0, 0);
ImageColorTransparent($txt_img, $black);

-----------

Für das, was du machen willst, bdominik, brauchst auch noch das hier: http://de3.php.net/manual/de/function.imagecolorat.php

bdominik schrieb am 12.10.2003 um 10:40 Uhr

Hab ich doch auch benuttz! Siehe Code oben!

Bluetooth schrieb am 12.10.2003 um 12:23 Uhr

kann es sein, dass du in den PNGs mehr Farben als 256 eingestellt hast?
Weil das dürfte die Ursache sein ...

Vorgehensweise:

1. Bild1 mit imagecreate (also 256 Farben) erstellen
2. Bild2 aus PNG erstellen
3. Bild2 auf Bild1 kopieren und Farben runterrechnen (Palette erstellen)
4. Farbe in Bild1 transparent machen
5. Bild1 erstellen und ausgeben.

bdominik schrieb am 12.10.2003 um 12:25 Uhr

Nein, das Bild hat eine Palette mit 16 Farben!

Tendor schrieb am 12.10.2003 um 14:34 Uhr

bei mir geht das.

kannst du mal ein bild zeigen, wo es nicht geht?

bdominik schrieb am 12.10.2003 um 14:53 Uhr

http://dominik.pagenstecher.de/kirche.png

Tendor schrieb am 13.10.2003 um 12:52 Uhr

das ist aber kein paletten bild.

bei mir geht das script trotzdem. nur der IE scheint die transparenz nicht zu erkennen (im opera und mozilla ist es durchsichtig)

bdominik schrieb am 13.10.2003 um 14:33 Uhr

aha, dann ist das also ein IE-Fehler, dass der PNG's nicht transparent anzeigen kann. So ne Kacke. Gibts da eine Lösung für?

theDon schrieb am 13.10.2003 um 15:09 Uhr

iirc gehen palettenbilder auch mit dem ie transparent.

Bluetooth schrieb am 13.10.2003 um 20:56 Uhr

bdominik du musst für das Bild ne Palette erstellen, dann geht das glaubsch ;)

bdominik schrieb am 13.10.2003 um 21:26 Uhr

und wie geht das? Mal eine Freeware programm empfehlung?

Tendor schrieb am 13.10.2003 um 21:51 Uhr

vielleicht geht es mit
imagetruecolortopalette ()

ansonsten kann ich dir irfanview empfehlen, das kann (fast) alle bildformate öffnen, farbtiefe verändern etc.

bdominik schrieb am 14.10.2003 um 18:11 Uhr

http://entropymine.com/jason/testbed/pngtrans/

bei mir läuft keins der Bilder im IE so wie es soll. Im Moz schon.

gfc schrieb am 14.10.2003 um 18:57 Uhr

bdominik postete
aha, dann ist das also ein IE-Fehler, dass der PNG's nicht transparent anzeigen kann. So ne Kacke. Gibts da eine Lösung für?

Nein, MS hat auch dementsprechend nix im Roadmap.. weisst du PNG ist eben ein offener Standart, da steht MS nicht so drauf *gr*

Seite 1 von 1