Hallo,
ich würde gerne ein kleines Script schreiben, welches
PNG-Bilder verkleinert.
Jedoch wird bei transparenten Bildern das Transparente
schwarz.
deine quelle hat einen alphakanal.
du musst dein neues bild erst mit einem transparenten hintergrund fuellen. ein leeres bild wird schwarz dargestellt. ein transparenter hintergrund eben transparent.
die transparenten bereiche aus dem kopierten bild können das schwarz des hintergrundes nicht abdecken - sie sind ja transparent. nur der rote kreis kann das schwarz abdecken.
sieht man auch schoen in der user note zu http://de.php.net/imagesavealpha
Wie kann ich das verhindern?
<?php $src = imagecreatefrompng('png-transparent.png');<br />$dst = imagecreatetruecolor(100,100);
//sage dem bild, dass es mit alpha kanal arbeiten soll
imagesavealpha($dst,true);
//fuelle den hintergrund mit voll transparentem schwarz
imagefill( $dst, 0, 0, imagecolorallocatealpha( $dst, 0, 0, 0, 127 ) );
imagecopyresampled($dst,$src,0,0,0,0,100,100,200,200);
if (!headers\_sent()) {
header("Content-type: image/png");
imagepng($dst);
}