Hallo Tom,
danke für deine klare Anleitung, die ich anderswo nirgends gefunden habe. Das Ergebnis überzeugt:
Bitte schau noch mal drüber, ob ich das optimal umgesetzt habe, wirkt doch recht umständlich:
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
Edit: Wenn ich - auch größere- Bilder mit Gimp „aufbereite“, wähle ich zum Schluss [Bild] [Modus] [indiziert] und reduziere auf 255 Farben. Das langt sogar bei Gruppenfotos und reduziert die Dateigröße auf die Hälfte bis ein Drittel. Muss mal stöbern, ob php das auch kann.