Signatur
Beschreibung
imageantialias() schaltet das Antialiasing für Linien- und Polygonzeichnungen auf einem GD-Bild ein oder aus. Antialiasing glättet Kanten schräger Linien, indem Zwischenpixel in abgestuften Farben gerendert werden, was zu einem visuell weicheren Ergebnis führt.
Die Funktion wirkt sich auf Zeichenfunktionen wie imageline(), imagepolygon() und ähnliche aus. Sie ist besonders nützlich, wenn Diagramme, Grafiken oder dekorative Elemente mit schrägverlaufenden Linien gerendert werden sollen, bei denen der typische Treppeneffekt (Aliasing) stören würde.
Achtung: Antialiasing funktioniert nur bei Echtfarb-Bildern (erstellt mit imagecreatetruecolor()). Bei Paletten-Bildern (imagecreate()) hat die Funktion keine Wirkung. Außerdem wird Antialiasing nicht unterstützt, wenn Transparenz aktiviert ist.
Ab PHP 8.0 wird anstelle eines GD-Ressource-Typs ein GdImage-Objekt erwartet. Die Funktion gibt true bei Erfolg und false bei Misserfolg zurück.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $image Pflicht | GdImage | Das GD-Bildobjekt, auf dem Antialiasing aktiviert oder deaktiviert werden soll. Muss ein Echtfarb-Bild sein, das z. B. mit imagecreatetruecolor() erstellt wurde. |
|
| $enable Pflicht | bool | true aktiviert Antialiasing, false deaktiviert es wieder. |
Rückgabewert
true bei Erfolg zurück, false bei Misserfolg (z. B. wenn kein Echtfarb-Bild übergeben wurde).Beispiele
Linie mit und ohne Antialiasing vergleichen
<?php
// Echtfarb-Bild erstellen
$image = imagecreatetruecolor(200, 100);
// Hintergrundfarbe Weiß
$white = imagecolorallocate($image, 255, 255, 255);
imagefilledrectangle($image, 0, 0, 200, 100, $white);
// Farbe Schwarz
$black = imagecolorallocate($image, 0, 0, 0);
// Linie OHNE Antialiasing (oben)
imageline($image, 10, 10, 190, 45, $black);
// Antialiasing aktivieren
imageantialias($image, true);
// Linie MIT Antialiasing (unten)
$blue = imagecolorallocate($image, 0, 0, 200);
imageline($image, 10, 55, 190, 90, $blue);
// Bild als PNG ausgeben
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
Antialiasing bei Polygon aktivieren
<?php
$image = imagecreatetruecolor(300, 200);
// Weißer Hintergrund
$white = imagecolorallocate($image, 255, 255, 255);
imagefilledrectangle($image, 0, 0, 300, 200, $white);
// Antialiasing einschalten
imageantialias($image, true);
// Rotes Dreieck mit geglätteten Kanten zeichnen
$red = imagecolorallocate($image, 220, 30, 30);
$points = [150, 20, 280, 180, 20, 180];
imagepolygon($image, $points, $red);
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
// Wichtig · Fallstricke
Nur für Echtfarb-Bilder: imageantialias() funktioniert ausschließlich bei Bildern, die mit imagecreatetruecolor() erstellt wurden. Bei Paletten-Bildern (imagecreate()) wird false zurückgegeben und die Funktion hat keine Wirkung.
Keine Unterstützung mit Transparenz: Wenn Transparenz über imagealphablending() oder imagesavealpha() aktiviert ist, kann Antialiasing zu unerwarteten Ergebnissen führen. In solchen Fällen sollte es deaktiviert bleiben.
GD-Bibliothek erforderlich: Die Funktion setzt voraus, dass PHP mit GD-Unterstützung kompiliert wurde. Ab PHP 8.0 wurde der Ressourcentyp durch das GdImage-Objekt ersetzt.