Linuchs: Danke - das isses

Beitrag lesen

Hallo Tom,

danke für deine klare Anleitung, die ich anderswo nirgends gefunden habe. Das Ergebnis überzeugt:

Original 33,0 kB: lachende Note groß

Verkleinerung 9,6 kB: lachende Note klein

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.