Lors de l'utilisation de PHP pour le traitement d'image, ImageeANtiAnias () est une fonction facilement négligée. Cependant, il a un impact significatif sur la qualité de l'image, en particulier la présentation des lignes et des bords lisses. Alors, que fait exactement cette fonction? Quelle est la différence entre l'allumer et l'éteindre? Découvrons à travers des exemples et des diagrammes de comparaison.
Imageantalias () est une fonction utilisée dans la bibliothèque PHP GD pour définir la fonction anti-aliasing. Le rôle de l'anti-aliasing est de lisser les bords, ce qui fait que les lignes, les courbes et les diagonales semblent plus naturelles et de réduire le sens de la déchaînement.
La syntaxe est la suivante:
bool imageantialias(GdImage $image, bool $enable): bool
$ Image est la ressource d'image cible;
Lorsque $ Activer est vrai , l'anti-aliasing est activé, s'il est faux , il est désactivé.
Ci-dessous, nous générons deux images identiques via un exemple de code, sauf que l'un a activé l'antialiers et l'autre n'a pas.
<?php
$img = imagecreatetruecolor(200, 200);
$white = imagecolorallocate($img, 255, 255, 255);
$black = imagecolorallocate($img, 0, 0, 0);
imagefill($img, 0, 0, $white);
// Aucun anti-aliasing n'est activé
imageantialias($img, false);
imagearc($img, 100, 100, 150, 150, 0, 360, $black);
imagepng($img, 'circle_no_antialias.png');
imagedestroy($img);
?>
Générer l'adresse de l'image: https://m66.net/images/circle_no_antialias.png
<?php
$img = imagecreatetruecolor(200, 200);
$white = imagecolorallocate($img, 255, 255, 255);
$black = imagecolorallocate($img, 0, 0, 0);
imagefill($img, 0, 0, $white);
// Activer l'anti-aliasing
imageantialias($img, true);
imagearc($img, 100, 100, 150, 150, 0, 360, $black);
imagepng($img, 'circle_antialias.png');
imagedestroy($img);
?>
Générer l'adresse de l'image: https://m66.net/images/circle_antialias.png
Veuillez consulter les différences entre les deux images suivantes:
L'anti-aliasing n'est pas activé: https://m66.net/images/circle_no_antialias.png
Activez les anti-alias: https://m66.net/images/circle_antialias.png
Comme on peut le voir sur la figure, les cercles sont plus lisses après l'allumage anti-aliasing, tandis que l'image avec anti-aliasing est désactivée avec des lignes irrégulières déchiquetées apparaissant sur les bords.
Bien que l'imagineAtialias () ne soit pas une fonction forcée, l'activation de l'antialiasage peut considérablement améliorer la qualité de l'image lors du traitement des images qui nécessitent des bords fins (tels que les icônes, les courbes, les contours de texte, etc.). Le seul prix est un peu plus de temps de traitement, mais ces frais généraux sont acceptables dans la plupart des scénarios d'application.
Si vous vous souciez de la beauté de l'image de sortie, n'oubliez pas d'ajouter ImageeRalias ($ Image, True); Avant de dessiner, un petit paramètre peut rendre votre effet de traitement d'image plus professionnel!