Logo

[php] Codeschnipsel: Bild verkleinern

Verkleinert ein Bild (JPG) auf eine festgelegte Größe.
Benötigt die GD-Bibliothek ab Version 1.8.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
$dateiname = "bild.jpg";
// maximale Breite und Höhe
$breite = 800;
$hoehe = 600;
// originale Breite und Höhe
list($breite_orig, $hoehe_orig) = getimagesize($dateiname);
if($breite_orig <= $breite && $hoehe_orig <= $hoehe)
{
    // Bild hat bereits korrekte Größe
}
else
{
    // Bild verkleinern
    // Verhältnis Breite / Höhe bestimmen
    $ratio = $breite_orig / $hoehe_orig;
    if($breite / $hoehe > $ratio)
        $breite = $hoehe * $ratio;
    else
        $hoehe = $breite / $ratio;
    // neues Bild erstellen
    $bild_neu = imagecreatetruecolor($breite, $hoehe);
    $bild_orig = imagecreatefromjpeg($dateiname);
    // original Bild verkleinern
    imagecopyresampled($bild_neu, $bild_orig, 0, 0, 0, 0, $breite, 
$hoehe, $breite_orig, $hoehe_orig);
    // neues Bild speichern
    imagejpeg($bild_neu, $dateiname, 100);
    // Speicher freigeben
    imagedestroy($bild_orig);
    imagedestroy($bild_neu);
}
?>