Danke - das isses
bearbeitet von LinuchsHallo Tom,
danke für deine klare Anleitung, die ich anderswo nirgends gefunden habe. Das Ergebnis überzeugt:
Original 33,0 kB: [![lachende Note groß](/images/caf5a02c-09f5-11ea-812c-b42e9947ef30.png?size=medium "lachende Note groß")](/images/caf5a02c-09f5-11ea-812c-b42e9947ef30.png)
Verkleinerung 9,6 kB: [![lachende Note klein](/images/04e95562-09f6-11ea-af57-b42e9947ef30.png?size=medium "lachende Note klein")](/images/04e95562-09f6-11ea-af57-b42e9947ef30.png)
Bitte schau noch mal drüber, ob ich das optimal umgesetzt habe, wirkt doch recht umständlich:
~~~php
case IMAGETYPE_PNG:
// 1. leeres Ziel-Bild (destination) anlegen in Zielgroesse und 32 Bit/Pixel
$destin = imagecreatetruecolor( $new_width, $new_height );
// 2. definiere Farbe, die kaum vorkommt und transparenter Hintergrund werden soll
$pink = imagecolorallocate( $destin, 241, 0, 255);
// 3. Ziel-Bild mit Farbe fuellen
imagefill( $destin, 0, 0, $pink);
// 4. zu verkleinerndes Quellen-Bild (source) laden
$source = imagecreatefrompng( $source_pic );
// 5. Quelle ins Ziel kopieren, dabei verkleinern
imagecopyresized ( $destin, $source, 0, 0, 0, 0, $new_width, $new_height, $width, $height );
// imagecopyresampled( $destin, $source, 0, 0, 0, 0, $new_width, $new_height, $width, $height ); // hat Raender um Buchstaben "berkach"
// 6. definierte Hintergrund-Farbe wird transparent
imagecolortransparent( $destin, $pink );
// 7. Ziel-Bild als Datei speichern. Ausgabe qualitaet 0 (keine Kompression) .. 9
imagepng( $destin, $destination_pic, 6 );
// imagepng( $destin, $destination_pic, 0 );
break;
~~~
Gruß, Linuchs