La bibliothèque GD est l'un des outils les plus couramment utilisés lors de l'utilisation de PHP pour le traitement d'image. Cette bibliothèque fournit un ensemble complet d'interfaces fonctionnelles pour générer et modifier dynamiquement les images. Une exigence d'optimisation visuelle courante pendant le dessin est l'anti-aliasing. À cette fin, la fonction ImageeANtialias () est née, ce qui améliore considérablement la douceur de l'image, en particulier lors du dessin des courbes et des diagonales. Cependant, de nombreux développeurs rencontreront un problème déroutant: même si ImageeRalias () est appelé, l'image semble toujours évidente. La raison est souvent le cas.
Imageantalias () est une fonction de la bibliothèque GD pour activer la caractéristique anti-aliasing des images. Sa syntaxe est la suivante:
imageantialias(resource $image, bool $enabled): bool
Lorsque $ activé est défini sur true , le dessin d'image permettra le mode anti-aliasing sur les bords plus lisses.
Dans le développement réel, ImageeANtialias () doit être appelé avant toute opération de dessin . En effet, la fonction ne s'applique pas rétroactivement à la figure déjà dessinée. Une fois l'image dessinée, appeler ImageeANtialias () n'aura aucun effet .
Par exemple, le code suivant ne permet pas d'anti-aliasing:
$img = imagecreatetruecolor(200, 200);
$white = imagecolorallocate($img, 255, 255, 255);
$black = imagecolorallocate($img, 0, 0, 0);
imagearc($img, 100, 100, 150, 150, 0, 360, $black); // L'anti-aliasage n'est pas activé avant de dessiner
imageantialias($img, true); // invalide,Trop tard
imagepng($img, 'https://m66.net/images/output.png');
imagedestroy($img);
Dans cet exemple, malgré l'imageantalias () activé, l'image est toujours déchiquetée car l'arc est dessiné avant que l'anti-aliasing ne soit activé.
Et la bonne façon devrait être:
$img = imagecreatetruecolor(200, 200);
imageantialias($img, true); // Activer l'anti-aliasing avant le dessin
$white = imagecolorallocate($img, 255, 255, 255);
$black = imagecolorallocate($img, 0, 0, 0);
imagearc($img, 100, 100, 150, 150, 0, 360, $black); // Efficace lors du dessin
imagepng($img, 'https://m66.net/images/output.png');
imagedestroy($img);
Ce code garantit que le mode anti-aliasing est activé avant le début de l'image, de sorte que les bords de l'image générée sont plus lisses.
Il convient de noter que l'effet de l'imagineAtialias () n'est pas toujours très évident, en particulier dans les images à haute résolution ou à un mauvais contraste de couleur. De plus, ImageeANtiAnias () fonctionne principalement sur les graphiques vectoriels tels que les lignes et les arcs, et n'a presque aucun effet sur les images au niveau des pixels (telles que les photos).
Dans le même temps, il est également nécessaire de rappeler: cette fonction peut être désactivée par défaut sur certains systèmes (tels que les fonctionnalités pertinentes ne sont pas activées lors de la compilation de GD). Il est recommandé de vérifier sa disponibilité par function_exists («ImageeANtialias») avant utilisation.
Lors de la génération d'images à l'aide de PHP, ImageeAralias () est un outil indispensable si vous souhaitez obtenir des bords graphiques lisses. Mais il a un point clé dans son utilisation: il doit être appelé avant le dessin . Ignorer cela fera perdre son effet et l'image qui sera finalement rendue est toujours pleine de déchiqueteuse. Par conséquent, dans le processus de traitement d'image, la saisie du synchronisation des appels est une étape clé pour atteindre la sortie d'image de haute qualité.