Dans le traitement d'image, la correspondance entre les unités de coordonnées et les points de pixels est souvent un sujet déroutant. Différentes bibliothèques et fonctions de dessin graphiques peuvent définir ces relations de différentes manières. Aujourd'hui, nous utilisons la fonction ImageOpenPolygon en PHP pour comprendre profondément la relation entre les unités de coordonnées et les points de pixels.
L'unité de coordonnées se réfère généralement aux "coordonnées logiques" dans l'image, et les points de pixel sont la "représentation physique" réelle de l'image. Les unités de coordonnées sont souvent utilisées pour définir la position des éléments graphiques ou d'image, tandis que les points de pixel correspondent directement aux pixels réels de l'écran d'affichage un par un. Pour le développement Web ou les tâches de dessin graphique, il est très important de comprendre comment convertir ces unités de coordonnées en points de pixels.
En PHP, ImageOpenPolygon est une fonction utilisée pour dessiner des polygones. Il appartient à la bibliothèque graphique GD et peut être utilisé pour créer des images et dessiner différentes formes. Le paramètre de cette fonction est un tableau contenant des coordonnées, qui sont généralement des "coordonnées logiques" dans l'image. Le but de la fonction est de cartographier ces coordonnées logiques aux points de pixel de l'image réelle, dessinant ainsi le graphique correspondant.
Dans la fonction ImageOpenPolygon , la relation de cartographie entre les unités de coordonnées et les points de pixels est déterminée par la taille de l'image. La bibliothèque GD en PHP utilise un système de coordonnées avec des pixels. Ici, la valeur de l'unité de coordonnées correspond à la position pixel de l'image. Par exemple, si vous avez une image avec une largeur d'image de 800px et une hauteur de 600px , la coordonnée supérieure gauche (0, 0) de l'image correspond au coin supérieur gauche de l'image, et la coordonnée du coin inférieur droit (800, 600) de l'image correspond au coin inférieur droit de l'image.
Avec cette cartographie, la fonction ImageOpenPolygon convertit les coordonnées définies par l'utilisateur (généralement des coordonnées relatives) en points de pixel réels, garantissant que le polygone souhaité est dessiné avec précision dans l'image.
Jetons un coup d'œil à un exemple simple qui montre comment dessiner un polygone en utilisant ImageOpenPolygon .
<?php
// Créer une image vierge
$image = imagecreatetruecolor(800, 600);
// Définir les couleurs d'arrière-plan
$backgroundColor = imagecolorallocate($image, 255, 255, 255); // Blanc
imagefill($image, 0, 0, $backgroundColor);
// Définissez les coordonnées du sommet d'un polygone(Ce sont les unités de coordonnées)
$points = array(
100, 100, // sommet1
200, 50, // sommet2
300, 150, // sommet3
200, 250, // sommet4
100, 200 // sommet5
);
// Régler la couleur(Par exemple, rouge)
$color = imagecolorallocate($image, 255, 0, 0);
// utiliserimageopenpolygonDessiner des polygones
imagefilledpolygon($image, $points, count($points) / 2, $color);
// Image de sortie
header('Content-Type: image/png');
imagepng($image);
// Libérer les ressources
imagedestroy($image);
?>
Créer une image: ImageCreateTrueColor (800, 600) est utilisée pour créer une image de taille de 800x600 pixels.
Définissez la couleur d'arrière-plan: utilisez ImageColorAllocate pour remplir la couleur d'arrière-plan de l'image, ici nous avons choisi le blanc.
Définir les sommets du polygone: La valeur dans le tableau (100, 100, 200, 50, 300, 150, 200, 250, 100, 200) est les coordonnées du sommet du polygone. Ces coordonnées sont des coordonnées logiques dans l'image, et les unités sont des pixels.
Dessiner des polygones: la fonction ImageFildPolygon utilise ces coordonnées pour dessiner un polygone de remplissage rouge.
Image de sortie: utilisez l'imagepng pour sortir l'image et définissez les informations d'en-tête correctes.
Dans les applications pratiques, nous pouvons rencontrer des situations où nous devons convertir des "coordonnées logiques" en coordonnées d'image. Par exemple, si les unités de coordonnées que nous obtenons à partir de la base de données ou de l'entrée utilisateur ne sont pas des pixels (par exemple, certains outils graphiques utilisent des coordonnées d'échelle), nous devons effectuer une conversion de mise à l'échelle. En supposant que la largeur de l'image est de 800px et que la valeur maximale du système de coordonnées que nous utilisons est de 100, alors la conversion entre les unités de coordonnées logiques et les pixels de l'image peut être réalisée grâce à la relation proportionnelle suivante:
Coordonnées d'image = Coordonnées logiques * Largeur d'image / 最大Coordonnées logiques值
Cette méthode assure une correspondance individuelle entre les coordonnées logiques et les pixels réels.
J'espère que cet article vous aidera à comprendre la relation entre les unités de coordonnées et les points de pixels, et comment dessiner des polygones en utilisant la fonction ImageOpenPolygon en PHP. Si vous avez d'autres questions, veuillez visiter notre site Web!