In der GD -Bibliothek von PHP ist Bildzeichnung eine sehr wichtige Funktion, insbesondere wenn es erforderlich ist, Bilder dynamisch zu generieren oder Bilder zu verarbeiten. Um die gezeichneten Linien glatter und schöner zu machen, werden die beiden Funktionen imagesantialias () und Bilderetthickness () häufig zusammen verwendet. In diesem Artikel werden die Funktionen dieser beiden Funktionen und ihre kombinierten Methoden ausführlich erläutert, um den Bildzeichnungseffekt zu optimieren.
Imagesantialias () wird verwendet, um die Anti-Aliasing-Wirkungen von Bildern zu aktivieren oder auszuschalten. Jagging bezieht sich auf gezackte Kanten, die beim Zeichnen von Schrägstrichen oder Kurven erscheinen und das Bild nicht glatt genug erscheinen.
bool imageantialias ( resource $image , bool $enabled )
$ Bild : Bildressource.
$ aktiviert : Ob das Anti-Aliasing aktiviert werden soll, ist ermöglicht, falsch wird falsch ausgeschaltet.
Wenn Anti-Aliasing aktiviert ist, werden die Kanten der gezogenen Linien glatter und haben eine bessere visuelle Wirkung.
ImagesThickness () wird verwendet, um die Dicke der Linie einzustellen, und die Standardzeilenbreite beträgt 1 Pixel.
bool imagesetthickness ( resource $image , int $thickness )
$ Bild : Bildressource.
$ Dicke : Die Dicke der Linie muss eine Ganzzahl sein und größer oder gleich 1.
Ein vernünftiges Einstellen der Dicke der Linie und das Kombinieren von Anti-Aliasing können das Bild zeichnen und schichtiger.
Das Folgende ist ein einfaches Beispiel, um zu zeigen, wie der Zeichnungseffekt mithilfe von ImageAntialias () und Imagesetthickness () optimiert werden kann.
<?php
// Erstellen Sie ein leeres Bild,Breite300,hoch150
$image = imagecreatetruecolor(300, 150);
// Definieren Sie die Farbe
$white = imagecolorallocate($image, 255, 255, 255);
$black = imagecolorallocate($image, 0, 0, 0);
$red = imagecolorallocate($image, 255, 0, 0);
// Gefüllter Hintergrund mit Weiß
imagefilledrectangle($image, 0, 0, 299, 149, $white);
// Anti-Aliasing ermöglichen
imageantialias($image, true);
// Stellen Sie die Leitungsdicke auf5Pixel
imagesetthickness($image, 5);
// Zeichne einen roten Schrägstrich
imageline($image, 10, 140, 290, 10, $red);
// Ausgabebild
header('Content-Type: image/png');
imagepng($image);
// Freier Speicher
imagedestroy($image);
?>
In diesem Beispiel:
Aktivieren Sie die Anti-Aliasing mit Imagesantialias ($ image, true) , um die Kanten der Schrägstriche reibungsloser zu machen.
Verwenden Sie Imagesetthickness ($ Image, 5), um die Leitungsdicke auf 5 zu setzen, damit die Linien dicker und auffälliger werden.
Wenn Anti-Aliasing ausgeschaltet ist, wird das Jagging offensichtlich an den Rändern der Linien auftreten, was die Ästhetik beeinflusst.
Anti-Aliasing aktivieren : Das Einschalten von Anti-Aliasing kann die visuelle Wirkung beim Zeichnen von Schrägstrichen oder Kurven erheblich verbessern.
Leitungsdicke einstellen : Stellen Sie unterschiedliche Liniendicken entsprechend den Anforderungen in unterschiedlichen Szenarien ein. Für die feine Zeichnung werden dünne Linien verwendet, und dicke Linien werden zur Betonung verwendet.
Leistungsüberlegungen : Das Einschalten von Anti-Aliasing erhöht die Zeichenzeit geringfügig und nutzt sie in Maßen, um die Leistung in Szenarien zu vermeiden, die eine große Menge an Zeichnung erfordern.
In Kombination mit anderen Zeichnungsfunktionen : Es kann mit Funktionen wie ImagePolygon () , ImageArc () , ImageCerectangle () usw. kombiniert werden, um den Zeichnungseffekt des gesamten Bildes zu optimieren.
ImageAntialias () gilt nur für Linien, die von Funktionen wie Imagine () , ImagePolygon () gezogen wurden, und ist für Füllbereiche ungültig.
Nicht alle PHP-Versionen und GD-Bibliotheken unterstützen Anti-Aliasing, und es wird empfohlen, zu bestätigen, dass die Umgebung sie vor der Verwendung unterstützt.
Die Dicke der Linie sollte vernünftig sein, da zu groß zu unberührtem Leitungskanten führen kann.