Bei der Verwendung von PHP für die Bildverarbeitung ist ImageAntialias () eine Funktion, die leicht übersehen kann. Es hat jedoch einen erheblichen Einfluss auf die Bildqualität, insbesondere die Darstellung von Linien und glatten Kanten. Also, was genau macht diese Funktion? Was ist der Unterschied zwischen dem Ein- und Ausschalten? Lassen Sie uns anhand von Beispielen und Vergleichsdiagrammen herausfinden.
ImageAntialias () ist eine Funktion, die in der PHP-GD-Bibliothek verwendet wird, um die Anti-Aliasing-Funktion festzulegen. Die Rolle des Anti-Aliasing besteht darin, die Kanten zu glätten, Linien, Kurven und Diagonalen natürlicher zu machen und das Gefühl des Zaggens zu verringern.
Die Syntax ist wie folgt:
bool imageantialias(GdImage $image, bool $enable): bool
$ image ist die Zielbildressource;
Wenn $ enable wahr ist, wird Anti-Aliasing eingeschaltet, wenn es falsch ist , wird es ausgeschaltet.
Im Folgenden generieren wir zwei identische Bilder über einen Beispielcode, außer dass einer Antialiasing aktiviert und der andere keine.
<?php
$img = imagecreatetruecolor(200, 200);
$white = imagecolorallocate($img, 255, 255, 255);
$black = imagecolorallocate($img, 0, 0, 0);
imagefill($img, 0, 0, $white);
// Es ist kein Anti-Aliasing aktiviert
imageantialias($img, false);
imagearc($img, 100, 100, 150, 150, 0, 360, $black);
imagepng($img, 'circle_no_antialias.png');
imagedestroy($img);
?>
Bildadresse generieren: https://m66.net/images/circle_no_antialiass.png
<?php
$img = imagecreatetruecolor(200, 200);
$white = imagecolorallocate($img, 255, 255, 255);
$black = imagecolorallocate($img, 0, 0, 0);
imagefill($img, 0, 0, $white);
// Anti-Aliasing ermöglichen
imageantialias($img, true);
imagearc($img, 100, 100, 150, 150, 0, 360, $black);
imagepng($img, 'circle_antialias.png');
imagedestroy($img);
?>
Bildadresse generieren: https://m66.net/images/circle_antialiass.png
Bitte beachten Sie die Unterschiede zwischen den folgenden zwei Bildern:
Anti-Aliasing ist nicht aktiviert: https://m66.net/images/circle_no_antialiass.png
Anti-Alias einschalten: https://m66.net/images/circle_antialias.png
Wie aus der Figur ersichtlich ist, sind die Kreise nach dem Einschalten der Anti-Aliasing reibungsloser, während das Bild mit Anti-Aliasing mit gezackten unregelmäßigen Linien an den Rändern ausgeschaltet wird.
Obwohl Imagesantialias () keine erzwungene Funktion ist, kann das Einschalten von Antialiasing die Bildqualität bei der Verarbeitung von Bildern erheblich verbessern, die feine Kanten (z. B. Symbole, Kurven, Textumrechnungen usw.) erfordern. Der einzige Preis ist etwas mehr Verarbeitungszeit, aber dieser Overhead ist in den meisten Anwendungsszenarien akzeptabel.
Wenn Sie sich um die Schönheit des Ausgabebildes kümmern, vergessen Sie nicht , Imagesantialias ($ Image, True) hinzuzufügen. Vor dem Zeichnen kann eine kleine Einstellung Ihren Bildverarbeitungseffekt professioneller aussehen!