Hallo,
gleich vorweg: PHP ist seltsam. *g*
Ich skaliere ein alphatransparentes PNG herunter, grob so:
Code:
$im = imagecreatefrompng(...);
imagesavealpha($im, true);
$im_thumb = imagecreatetruecolor(...);
imagealphablending($im_thumb, false); // fragt nicht wieso, aber "false" ist hier korrekt
imagesavealpha($im_thumb, true);
$transp = imagecolorallocatealpha($im_thumb, ...);
imagefilledrectangle($im_thumb, ..., $transp);
imagecopyresampled($im_thumb, $im, ...);
Das funktioniert soweit.
Nun zeichne ich ein halbtransparentes Rechteck darüber:
Code:
$rect_color = imagecolorallocatealpha($im_thumb, ...);
imagefilledrectangle($im_thumb, ..., $rect_color);
Das geht auch.
Nun möchte ich aber über dem Rechteck noch ein alphatransparentes Icon haben und da kann ich versuchen, was ich will, es klappt nicht.
Das soeben gezeichnete Rechteck wird im Bereich des Icons mit vollständiger transparenz "übermalt". D.h. dort, wo das Icon transparent ist, kann ich durch das Bild auf den Hintergrund schauen.
Ansätze waren u.a.
- der wie oben: imagecreatefrompng() => imagecopy()
- imagecreatetruecolor() => imagecreatefrompng() => imagecopy() auf das mit "...truecolor()" erstellte PNG => imagecopy() auf $im_thumb
Nichts geht.
Wie geht das bzw. kann PHP bzw. GD das überhaupt?
Grüße, Matze