Mit Hilfe der Funktion getimagesize() kann man die Dimensionen eines Bildes in den Formaten GIF, JPG, PNG, SWF und weiterer Formate ermitteln. Dies ist beispielsweise nützlich, wenn Anwender selbst Bilder hochladen können, die aber eine bestimmte Pixelgröße nicht überschreiten dürfen. Auch wenn man vorhandene Bilder in der Größe anpassen möchte, ist es zunächst nötig, die Breite und Höhe des ursprünglichen Bildes zu kennen, damit es im richtigen Verhältnis verkleinert werden kann. Damit kann man z.B. eine Vorschauansicht generieren.
Die Funktion liefert aber noch weitere Daten über ein Bild. Der Rückgabewert ist ein Array, das neben der Breite und Höhe noch den Typ der Grafik, die Höhe und Breite als ein String zur Einbettung in ein IMG-Tag liefert. Ebenso lassen sich der MIME-Typ ermitteln, ob es sich um eine RGB- oder CMYK-Grafik handelt sowie die Bits pro Pixel.
Die Syntax:
getimagesize ( string $filename )
Beispiel:
<?php
$bild = './bild.JPG';
if (@getimagesize($bild) != false) {
list($breite, $hoehe, $grafik_type, $img_tag,
$bits, $channels, $mime) =
@getimagesize($bild);
echo 'Das Bild "'.$bild.'" hat die Maße:
'.$breite.'x'.$hoehe.'.';
} else {
echo 'Die Maße von den Bild "'.$bild.'"
konnten nicht ermittelt werden';
}
?>
Ausgabe:
Das Bild bildname.jpg hat die Maße: 125 x 80.
Erklärung:
Mit "if(@getimagesize($bild)!=false)" wird überprüft, ob es sich um ein gültiges Format handelt. Ist dies nicht der Fall, wird die Fehlermeldung "Die Maße von den Bild bildname.jpg konnten nicht ermittelt werden" ausgegeben. Ansonsten werden die Daten des Bildes ermittelt und das zurückgebene Array ausgelesen.
Das Array enthält folgende Daten:
0: Die Breite des Bildes
1: Die Höhe des Bildes
2: IMAGETYPE_XXX-Konstante
3: Ein String im Format height="yy" width="xx" zur Einbettung in ein IMG-Tag
4: mime - MIME-Typ der Grafik
5: channels - für RGB-Grafiken wird der Wert 3, für CMYK-Grafiken der Wert 4 zurückgegeben
6: bits - Anzahl der Bits pro Pixel (dieser Wert kann nicht immer ermittelt werden, z.B. bei animierten GIFs)
Anschließend werden die Breite und Höhe des Bildes per echo ausgegeben.
Hinweis: Alternativ können mit getimagesize ( string $filename, array &$imageinfo ) weitere Informationen ermittelt werden. Derzeit werden verschiedene JPG APP Markierungen als assoziatives Array zurückgeliefert.