Bei der Verarbeitung von Bildern in PHP ist die Funktion "Imagesantialias () ein Werkzeug zum Ein- oder Ausschalten von Bild -Antialiasing. Die Anti-Aliasing ermöglicht glatte Kanten von Linien in einem Bild, wodurch gezackte grobe Kanten vermieden werden. Ist es also notwendig, dass wir die Funktion der Bildung vor der Bildsynthese aufrufen? In diesem Artikel wird dieses Problem im Detail erläutert.
Die Funktion der Funktion der ImageAntialias () besteht darin , die Anti-Aliasing für Bildressourcen ein- oder auszuschalten. Die Funktionssignatur ist wie folgt:
bool imageantialias(resource $image, bool $enabled)
$ Bild : Zielbildressource
$ aktiviert : Ob Sie Anti-Aliasing, Booleschen Wert aktivieren möchten
Wenn Anti-Aliasing eingeschaltet wird, sind die Ränder der Bildzeichnungslinien glatter, um das Zaggen zu vermeiden.
Im Prozess der Bildsynthese werden mehrere Bildressourcen normalerweise als Leinwand überlagert, zusammengeführt oder mit einer Bildressource gezeichnet. Die Syntheseoperation selbst besteht normalerweise darin, Pixeldaten zu kopieren oder transparente Kanäle zum Mischen zu verwenden, und die Funktion von Imagesantialias () wirkt sich nicht direkt auf den Syntheseeffekt aus.
Das Hauptziel von ImageAntialias () besteht darin, die Kanten beim Zeichnen von Grafiken zu glätten. Wenn Sie auf eine synthetische Leinwand zeichnen (z. B. Zeichnungslinien, Rechtecke usw.), hilft das Einschalten von Anti-Aliasing dazu, die Zeichenqualität zu verbessern. Wenn die Synthese nur eine einfache Bildkopie oder Karte ist, hat das Aufrufen dieser Funktion im Grunde keinen Einfluss.
Hier ist ein einfaches Beispiel, das den Unterschied zwischen dem Einschalten von Anti-Aliasing beim Zeichnen von Linien und der Anwendung bei Bildsynthese zeigt:
<?php
// Erstellen Sie zwei Leinwände
$canvas1 = imagecreatetruecolor(200, 200);
$canvas2 = imagecreatetruecolor(200, 200);
// Farbe
$white = imagecolorallocate($canvas1, 255, 255, 255);
$black = imagecolorallocate($canvas1, 0, 0, 0);
// Füllen Sie den Hintergrund
imagefill($canvas1, 0, 0, $white);
imagefill($canvas2, 0, 0, $white);
// Anti-Aliasing einschalten
imageantialias($canvas1, true);
// 不Anti-Aliasing einschalten
imageantialias($canvas2, false);
// Zeichnen Sie die gleichen Schrägstriche auf zwei Leinwellen
imageline($canvas1, 10, 10, 190, 190, $black);
imageline($canvas2, 10, 10, 190, 190, $black);
// Bilder synthetisieren,Fügen Sie die zweite Leinwand rechts von der ersten Leinwand ein
$finalWidth = 400;
$finalHeight = 200;
$finalImage = imagecreatetruecolor($finalWidth, $finalHeight);
imagefill($finalImage, 0, 0, $white);
imagecopy($finalImage, $canvas1, 0, 0, 0, 0, 200, 200);
imagecopy($finalImage, $canvas2, 200, 0, 0, 0, 200, 200);
// Ausgabebild
header('Content-Type: image/png');
imagepng($finalImage);
// Freier Speicher
imagedestroy($canvas1);
imagedestroy($canvas2);
imagedestroy($finalImage);
?>
In diesem Beispiel erscheinen die Linien auf der linken Leinwand aufgrund des Anti-Aliasing-Einsatzes glatt, während das Jagging auf der rechten Seite offensichtlicher ist. Die Syntheseoperation selbst hat keinen Einfluss auf die Anti-Aliasing.
Wenn Sie eine Figur zeichnen, müssen Sie die Kanten glätten : Zeichnen Sie beispielsweise geometrische Figuren wie Schrägstriche, Polygone usw.
Die Bildsynthese ist nur eine Karte oder Kopie und beinhaltet keine Zeichnungsvorgänge und kann ohne Anruf aufgerufen werden.
Leistungsüberlegungen : Anti-Aliasing erhöht die Berechnung, und häufige Aufrufe können die Leistung beeinflussen, insbesondere bei der Verarbeitung großer Bildmengen.
Imagesantialias () beeinflusst hauptsächlich, ob die von der Zeichnungsfunktion gezeichneten Kanten der Figur glatt sind.
Im Prozess der Bildsynthese (Bildkopieren, Zusammenführen) hat das Aufrufen von Imagesantialias () keinen offensichtlichen Effekt.
Wenn während des Syntheseprozesses Linien oder Grafiken gezogen werden müssen, wird empfohlen, sie aufzurufen, um den visuellen Effekt zu verbessern.
Entscheiden Sie, ob Sie basierend auf den tatsächlichen Anforderungen und Leistungsabfällen einschalten möchten.
https://www.m66.net/manual/en/function.imageantialias.php
https://www.m66.net/manual/en/book.image.php