Gerhard Knabe: Grafik verkleinern und neu speichern

Beitrag lesen

Das folgende Skript liefert ein jpeg-Bild (für andere Formate - etwa png - die entsprechenden GD-Funktionen verwenden) in 200 Pixel Breite an den Browser aus. Den Dateipfad des Bildes musst Du in der ersten Zuweisungszeile noch eintragen. Das Skript zeigt exemplarisch, wie dein Problem gelöst werden kann. Die Funktion imagejpeg kann auch in eine Datei schreiben (siehe PHP Handbuch). Dann ist die Ausgabe des Content-type natürlich nicht notwendig und auch nicht sinnvoll.

<?php
  $bild = "Hier gültigen Dateipfad eintragen";
  $size = getimagesize($bild);
  $breite = $size[0];
  $hoehe = $size[1];

$neueBreite = 200;
  $neueHoehe = intval($hoehe*$neueBreite/$breite);

$altesBild = imagecreatefromjpeg($bild);
  $neuesBild = imagecreatetruecolor($neueBreite, $neueHoehe);
  imagecopyresampled($neuesBild, $altesBild, 0, 0, 0, 0, $neueBreite, $neueHoehe, $breite, $hoehe);
  header("Content-type: image/jpeg");
  imagejpeg($neuesBild);
?>

MfG
GK