Position actuelle: Accueil> Derniers articles> Comment utiliser la comparaison d'images pour vérifier l'exactitude du dessin du polygone

Comment utiliser la comparaison d'images pour vérifier l'exactitude du dessin du polygone

M66 2025-05-29

Comment vérifier l'exactitude du dessin du polygone en utilisant la fonction ImageOpenPolygon de PHP et la méthode de comparaison d'image?

La bibliothèque de traitement d'images de PHP GD fournit une multitude de fonctions qui peuvent aider les développeurs à traiter les images et à dessiner des graphiques. La fonction ImageOpenPolygon est l'une des fonctions utilisées pour dessiner des polygones et convient aux scénarios où les polygones doivent être dessinés et validés. Dans certaines applications, nous devons nous assurer que les polygones dessinés sont exacts. À l'heure actuelle, grâce à la comparaison d'images, nous pouvons vérifier efficacement si le dessin du polygone répond aux attentes.

Cet article présentera comment utiliser la fonction ImageOpenPolygon de PHP combinée à la comparaison d'images pour vérifier l'exactitude du dessin du polygone.

1. Présentation de la fonction ImageOpenPolygon

En PHP, la fonction ImageOpenPolygon est utilisée pour dessiner un polygone fermé sur une image. Sa syntaxe de base est la suivante:

 imageopenpolygon(resource $image, array $points, int $num_points)
  • $ Image : Ressource d'image cible.

  • $ Points : un tableau contenant les coordonnées des vertexes de polygone. Chaque sommet se compose de deux valeurs numériques (coordonnées x et y).

  • $ num_points : le nombre de sommets de polygone.

2. Exemple de code: dessiner des polygones

Nous dessinons d'abord un triangle simple à l'aide de la fonction ImageOpenPolygon et l'enregistrons en tant que fichier image. Voici un exemple de code pour dessiner et enregistrer une image:

 <?php
// Créer une image vierge
$image = imagecreatetruecolor(400, 400);

// Définir la couleur de fond sur blanc
$white = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $white);

// Réglez la couleur du polygone
$red = imagecolorallocate($image, 255, 0, 0);

// Définissez les coordonnées du sommet d&#39;un polygone
$points = [
    150, 50,  // Le premier point (X, Y)
    250, 50,  // Le deuxième point (X, Y)
    200, 150  // Le troisième point (X, Y)
];

// Dessiner des polygones
imageopenpolygon($image, $points, 3);

// Enregistrer l&#39;image
imagepng($image, 'polygon.png');

// Libérez des ressources d&#39;image
imagedestroy($image);
?>

3. Vérification de la comparaison d'images

Afin de vérifier si le polygone est correctement dessiné, il peut être réalisé grâce à la comparaison d'images. L'idée de base est de comparer les images dessinées avec une image "correcte" attendue et de vérifier leurs différences. Nous pouvons faire cette vérification en calculant la valeur de hachage de l'image.

Voici un exemple de code pour vérifier l'exactitude du dessin du polygone par comparaison de hachage d'image:

 <?php
// Chargez l&#39;image dessinée réelle
$actual_image = 'polygon.png';
// Chargez l&#39;image correcte attendue
$expected_image = 'expected_polygon.png';

// Calculez la valeur de hachage de deux images
$actual_hash = md5_file($actual_image);
$expected_hash = md5_file($expected_image);

// Comparaison des valeurs de hachage de deux images
if ($actual_hash === $expected_hash) {
    echo "Dessin de polygone correctement!\n";
} else {
    echo "Le dessin du polygone est incorrect!\n";
}
?>

Dans cet exemple, nous utilisons la fonction MD5_FILE pour calculer la valeur de hachage MD5 du fichier image. En comparant les valeurs de hachage de l'image réelle et de l'image attendue, nous pouvons dire si les deux sont les mêmes. Si les valeurs de hachage sont cohérentes, cela signifie que le polygone dessiné est correct; Sinon, cela signifie qu'il y a un problème avec le dessin.

4. Résumé

En combinant la fonction de la fonction ImageOpenPolygon ImageOpenPolygon de PHP, nous pouvons vérifier efficacement l'exactitude des polygones de dessin. En calculant la valeur de hachage de l'image, la différence entre les résultats du dessin et les résultats attendus peut être rapidement comparée, aidant ainsi les développeurs à découvrir et à corriger les problèmes de dessin en temps opportun.