Signatur
Beschreibung
imageistruecolor() ermittelt, ob ein gegebenes GD-Bildobjekt im True-Color-Modus vorliegt (d. h. 32 Bit pro Pixel mit einem vollen RGB-Farbraum) oder ob es sich um ein palettenbasiertes Bild handelt (maximal 256 Farben, wie es bei imagecreate() der Fall ist).
Echtfarbenbilder werden mit imagecreatetruecolor(), imagecreatefromjpeg(), imagecreatefrompng() oder ähnlichen Ladefunktionen erzeugt, die intern True Color verwenden. Palettenbilder entstehen dagegen durch imagecreate() oder können durch imagetruecolortopalette() konvertiert werden.
Diese Funktion ist besonders nützlich, wenn Code sowohl mit True-Color- als auch mit Palettenbildern umgehen muss: Viele GD-Funktionen (z. B. Alpha-Compositing, bestimmte Farboperationen) verhalten sich für True-Color-Bilder anders als für Palettenbilder. Durch die Abfrage lässt sich gezielt auf den Bildtyp reagieren oder ggf. eine Konvertierung vornehmen.
Ab PHP 8.0 wird der frühere Ressourcentyp resource durch das Objekt GdImage ersetzt; der Funktionsaufruf selbst bleibt identisch.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $image Pflicht | GdImage | Ein GD-Bildobjekt, das z. B. von imagecreatetruecolor(), imagecreatefromjpeg() oder imagecreate() zurückgegeben wurde. |
Rückgabewert
true zurück, wenn das Bild ein True-Color-Bild ist, andernfalls false (Palettenbild).Beispiele
Bildtyp ermitteln und ggf. konvertieren
<?php
// Echtfarbenbild erzeugen
$trueColorImage = imagecreatetruecolor(200, 100);
// Palettenbild erzeugen
$paletteImage = imagecreate(200, 100);
var_dump(imageistruecolor($trueColorImage)); // bool(true)
var_dump(imageistruecolor($paletteImage)); // bool(false)
imagedestroy($trueColorImage);
imagedestroy($paletteImage);
?>
Palettenbild vor Verarbeitung in True Color umwandeln
<?php
// GIF wird häufig als Palettenbild geladen
$image = imagecreatefromgif('beispiel.gif');
if (!imageistruecolor($image)) {
// Temporäres True-Color-Bild erstellen und das Palettenbild hineinkopieren
$width = imagesx($image);
$height = imagesy($image);
$trueColor = imagecreatetruecolor($width, $height);
imagecopy($trueColor, $image, 0, 0, 0, 0, $width, $height);
imagedestroy($image);
$image = $trueColor;
echo "Bild wurde in True Color konvertiert.\n";
} else {
echo "Bild ist bereits ein True-Color-Bild.\n";
}
// Weiterverarbeitung ...
imagedestroy($image);
?>
// Wichtig · Fallstricke
Kompatibilitätshinweis: Vor PHP 8.0 akzeptierte diese Funktion einen resource-Parameter vom Typ gd. Ab PHP 8.0 wird ausschließlich ein GdImage-Objekt erwartet.
Bei der Verwendung von imagetruecolortopalette() wird ein True-Color-Bild in ein Palettenbild umgewandelt. Anschließend liefert imageistruecolor() für dieses Bild false. Dies kann zu Qualitätsverlust führen, da der Farbraum auf 256 Farben reduziert wird.
JPEG-Bilder werden von GD stets als True-Color-Bilder geladen, während GIF- und einige PNG-Bilder als Palettenbilder vorliegen können.