Signatur
Beschreibung
imagegetinterpolation() liest die für ein GD-Bildobjekt hinterlegte Interpolationsmethode aus und gibt sie als Integer-Konstante zurück. Die Interpolationsmethode bestimmt, welcher Algorithmus beim Skalieren, Rotieren oder anderweitigen geometrischen Transformationen eines Bildes verwendet wird.
Die zurückgegebene Methode wurde zuvor typischerweise mit imagesetinterpolation() gesetzt. Standardmäßig verwenden viele GD-Funktionen bilineare Interpolation (IMG_BILINEAR_FIXED). Für qualitativ hochwertige Skalierungen empfiehlt sich z. B. IMG_BICUBIC, während IMG_NEAREST_NEIGHBOUR die schnellste, aber qualitativ einfachste Methode darstellt.
Diese Funktion ist nützlich, wenn man die aktuelle Einstellung eines Bildes prüfen oder sicherstellen möchte, dass eine bestimmte Methode vor einer Bildtransformation aktiv ist. Sie eignet sich besonders in komplexen Bildverarbeitungs-Pipelines, in denen verschiedene Transformationen mit unterschiedlichen Interpolationsarten durchgeführt werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $image Pflicht | GdImage | Ein gültiges GD-Bildobjekt, das z. B. mit imagecreatetruecolor() oder imagecreatefromjpeg() erstellt wurde. |
Rückgabewert
IMG_*-Konstanten wie z. B. IMG_BILINEAR_FIXED, IMG_BICUBIC oder IMG_NEAREST_NEIGHBOUR.Beispiele
Aktuelle Interpolationsmethode auslesen
<?php
$image = imagecreatetruecolor(200, 200);
// Standardmethode auslesen
$method = imagegetinterpolation($image);
echo 'Aktuelle Interpolationsmethode: ' . $method . PHP_EOL;
// Neue Methode setzen
imagesetinterpolation($image, IMG_BICUBIC);
// Erneut auslesen
$method = imagegetinterpolation($image);
echo 'Neue Interpolationsmethode: ' . $method . PHP_EOL;
imagedestroy($image);
?>
Interpolationsmethode vor Rotation prüfen und ggf. setzen
<?php
$image = imagecreatefromjpeg('foto.jpg');
// Sicherstellen, dass bikubische Interpolation aktiv ist
if (imagegetinterpolation($image) !== IMG_BICUBIC) {
imagesetinterpolation($image, IMG_BICUBIC);
echo 'Interpolationsmethode auf IMG_BICUBIC gesetzt.' . PHP_EOL;
} else {
echo 'IMG_BICUBIC ist bereits aktiv.' . PHP_EOL;
}
// Bild um 45 Grad rotieren
$rotated = imagerotate($image, 45, 0);
imagejpeg($rotated, 'foto_rotiert.jpg');
imagedestroy($image);
imagedestroy($rotated);
?>
// Wichtig · Fallstricke
Die zurückgegebenen Integer-Werte entsprechen den IMG_*-Konstanten, deren genaue numerische Werte implementierungsabhängig sein können. Es empfiehlt sich daher, beim Vergleich stets die benannten Konstanten (IMG_BICUBIC, IMG_NEAREST_NEIGHBOUR usw.) zu verwenden statt rohe Integer-Werte.
Die Funktion ist seit PHP 5.5.0 verfügbar und erfordert eine GD-Bibliothek, die mit der entsprechenden Interpolationsunterstützung kompiliert wurde. In PHP 8.0 wurde der Parameter von resource auf das typsichere GdImage-Objekt umgestellt.