Start · Sprachen · PHP · Referenz · imagesy

imagesy

Funktion

Gibt die Höhe (in Pixeln) eines GD-Bildobjekts zurück.

seit PHP 4.0.0 Kategorie: image

Signatur

imagesy(GdImage $image): int|false

Beschreibung

imagesy() ermittelt die Höhe eines mit GD erstellten oder geladenen Bildes in Pixeln. Die Funktion ist das vertikale Gegenstück zu imagesx(), die die Breite liefert.

Typische Einsatzbereiche sind die Berechnung von Skalierungsfaktoren beim Thumbnail-Erstellen, die Positionierung von Text oder Wasserzeichen relativ zur Bildgröße sowie allgemeine Validierungen, bevor ein Bild weiterverarbeitet wird.

Seit PHP 8.0 erwartet die Funktion ein GdImage-Objekt statt einer Ressource. In früheren PHP-Versionen wurde stattdessen ein resource-Typ übergeben. Der Rückgabewert ist bei einem gültigen Bild immer eine positive ganze Zahl; false wird zurückgegeben, wenn kein gültiges GD-Bild übergeben wurde.

Parameter

Name Typ Default Beschreibung
$image Pflicht GdImage Ein GD-Bildobjekt, das z. B. durch imagecreatefromjpeg(), imagecreatetruecolor() oder eine andere imagecreate*-Funktion erzeugt wurde.

Rückgabewert

Typ
int|false
Beschreibung
Gibt die Höhe des Bildes in Pixeln als int zurück. Bei einem ungültigen GdImage-Objekt wird false zurückgegeben.

Beispiele

Höhe und Breite eines geladenen JPEG-Bildes ausgeben

<?php
$image = imagecreatefromjpeg('foto.jpg');

if ($image !== false) {
    $breite = imagesx($image);
    $hoehe  = imagesy($image);
    echo "Bildgröße: {$breite} x {$hoehe} Pixel";
    imagedestroy($image);
} else {
    echo 'Bild konnte nicht geladen werden.';
}
Bildgröße: 1920 x 1080 Pixel

Proportionale Skalierung auf maximale Höhe

<?php
$quelle = imagecreatefromjpeg('original.jpg');

$maxHoehe  = 200;
$origBreite = imagesx($quelle);
$origHoehe  = imagesy($quelle);

// Skalierungsfaktor berechnen, damit die Höhe nicht überschritten wird
$faktor       = $maxHoehe / $origHoehe;
$neueBreite   = (int) round($origBreite * $faktor);
$neueHoehe    = (int) round($origHoehe  * $faktor);

$thumbnail = imagecreatetruecolor($neueBreite, $neueHoehe);
imagecopyresampled(
    $thumbnail, $quelle,
    0, 0, 0, 0,
    $neueBreite, $neueHoehe,
    $origBreite, $origHoehe
);

imagejpeg($thumbnail, 'thumbnail.jpg', 85);
imagedestroy($quelle);
imagedestroy($thumbnail);

echo "Thumbnail erstellt: {$neueBreite} x {$neueHoehe} Pixel";
Thumbnail erstellt: 356 x 200 Pixel

// Wichtig · Fallstricke

Vor PHP 8.0 akzeptierte imagesy() einen resource-Typ. Wird eine ungültige Ressource oder kein GD-Objekt übergeben, gibt die Funktion false zurück — dies sollte im Code immer geprüft werden (=== false), da eine Höhe von 0 theoretisch ebenfalls falsy wäre.

Bei neu erstellten Bildern via imagecreatetruecolor() oder imagecreate() gibt imagesy() exakt den beim Erstellen angegebenen Höhenwert zurück.