Tutorials: PHP

Imageresize

   
In diesem Beispiel zeige ich, wie man mit PHP übergroße Bilder so verkleinern kann, dass sie die gewünschte Größe nicht überschreiten. Anschließend wird das Bild in gewünschter Form ausgegeben. Die Proportionen bleiben erhalten.

Dazu eine kurze Beschreibung der Funktion getimagesize():

Der Funktion wird ein Image mit entsprechendem Pfad übergeben, zurückgegeben werden verschiedene Informationen, die man mit einzelnen Indizes aufrufen kann. In unserem Beispiel ist:
- $size[0] die Breite,
- $size[1] die Höhe,
- $size[2] der Grafiktyp (GIF, PNG...)
- und $size[3] der HTML-Code für das Bild (width="xxx" height="xxx")

Gebraucht werden aber nur die ersten beiden Indizes, um das Bild zu transformieren.

<?
function resize($pic) {
$max 200// Maximale Höhe und Breite in Pixeln
$size getimagesize($pic);
if(
$size[0] > $max) { // Wenn die Breite über dem Maximalwert liegt...
$width $max// ...setze Breite auf Maximalwert...
$height $size[1] * ($max $size[0]); // ...und berechne die Höhe, um die Proportion beizubehalten.
}
// Anschließend das selbe mit der Höhe machen
if($size[1] > $max) {
$height $max;
$width $size[0] * ($max $size[1]);
}
echo 
'<div style="width:' $width 'px;height:' $height 'px;><img src="' $pic '" width="' $width '" height="' $height '"></div>'// Bild ausgeben
}

resize("pfad/bild.gif"); // Funktion aufrufen
?>


Login