Signatur
Beschreibung
imagetypes() liefert eine Ganzzahl als Bitmaske, die alle vom installierten GD-Modul unterstützten Grafikformate repräsentiert. Damit lässt sich zur Laufzeit prüfen, ob ein bestimmtes Bildformat verfügbar ist, bevor bildverarbeitende Funktionen aufgerufen werden.
Die Rückgabe kann mit den vordefinierten Konstanten IMG_BMP, IMG_GIF, IMG_JPG (alias IMG_JPEG), IMG_PNG, IMG_WBMP, IMG_XPM, IMG_WEBP und IMG_AVIF (ab PHP 8.1) per bitweisem UND (&) verglichen werden.
Die Funktion ist besonders hilfreich in Bibliotheken oder Frameworks, die auf verschiedenen Serverkonfigurationen laufen, um sicherzustellen, dass ein bestimmtes Format vor der Nutzung tatsächlich unterstützt wird. So lassen sich Fehler durch fehlende Kompilier-Optionen der GD-Bibliothek vermeiden.
Rückgabewert
int zurück, die die unterstützten Bildformate kodiert. Der Wert ist eine Kombination der IMG_*-Konstanten. Der Rückgabewert ist immer eine positive Ganzzahl; es gibt keinen Fehlerfall.Beispiele
Unterstützte Bildformate ausgeben
<?php
$types = imagetypes();
if ($types & IMG_GIF) {
echo "GIF wird unterstützt.\n";
}
if ($types & IMG_JPG) {
echo "JPEG wird unterstützt.\n";
}
if ($types & IMG_PNG) {
echo "PNG wird unterstützt.\n";
}
if ($types & IMG_WEBP) {
echo "WebP wird unterstützt.\n";
}
if ($types & IMG_AVIF) {
echo "AVIF wird unterstützt.\n";
}
Format-Auswahl in einer Upload-Verarbeitungs-Funktion
<?php
function getAvailableOutputFormats(): array
{
$supported = [];
$map = [
'gif' => IMG_GIF,
'jpeg' => IMG_JPG,
'png' => IMG_PNG,
'webp' => IMG_WEBP,
'bmp' => IMG_BMP,
];
$types = imagetypes();
foreach ($map as $ext => $flag) {
if ($types & $flag) {
$supported[] = $ext;
}
}
return $supported;
}
$formats = getAvailableOutputFormats();
echo "Verfügbare Ausgabeformate: " . implode(', ', $formats) . "\n";
// Wichtig · Fallstricke
Konstanten-Aliase: IMG_JPG und IMG_JPEG sind identisch; beide können für die Prüfung auf JPEG-Unterstützung verwendet werden.
AVIF: Die Konstante IMG_AVIF und die Unterstützung für AVIF-Bilder wurden erst in PHP 8.1 eingeführt. Ein Zugriff auf diese Konstante in älteren PHP-Versionen führt zu einem Fehler. Prüfen Sie daher zuerst mit defined('IMG_AVIF'), ob die Konstante existiert.
Abhängigkeit von der GD-Kompilierung: Die unterstützten Formate hängen davon ab, mit welchen Bibliotheken GD beim Kompilieren von PHP verknüpft wurde (z. B. libjpeg, libpng, libwebp). imagetypes() gibt nur die tatsächlich verfügbaren Formate zurück.