Comment utiliser la fonction ImageOpenPolygon de PHP pour implémenter une solution (masque) pour cramponner le contenu de l'image dans les zones de polygone?
Pendant le traitement de l'image, la nécessité de recadrer des zones spécifiques est très courante. Nous pouvons réaliser des images à bien des égards, l'une des méthodes courantes consiste à utiliser la fonction d' image de l'Open -Polygon en PHP pour effectuer des recadrage de la zone de polygone. Grâce à cette fonction, nous pouvons spécifier une zone de polygone avec précision et recadrer le contenu de cette zone à partir de l'image. Ensuite, nous discuterons de la façon d'utiliser la fonction d'image OpenPolygon et de combiner d'autres fonctions pour réaliser l'effet de recadrage de l'image.
L'idée de base de la culture de la zone de polygone est:
Définissez la zone du polygone : définit la zone d'écrêtage en spécifiant chaque sommet d'un polygone.
Appliquer la fonction ImageOpenPolygon : Utilisez la fonction ImageOpenPolygon pour dessiner ce polygone sur l'image.
Images de recadrage : Extraire le contenu dans les zones de polygone via l'imagecrop ou d'autres méthodes de recadrage.
Voici les étapes pour implémenter cette solution.
Tout d'abord, nous devons charger une image, qui peut être chargée à l'aide de l'imageRereAfromJPEG de PHP, d'imageRereateFrommpng ou d'autres fonctions connexes.
$image = imagecreatefromjpeg('your_image.jpg'); // Chargement des fichiers d'image
Avant la culture, nous devons définir des sommets de polygone qui déterminent la forme et la taille de la zone courte. Un sommet doit être un tableau et chaque élément du tableau est les coordonnées d'un sommet.
$vertices = [
[100, 100],
[200, 100],
[200, 200],
[100, 200]
];
Ce code définit quatre sommets d'un rectangle ( 100 100 , 200 100 , 200 200 , 100 200 ) pour représenter une zone rectangulaire.
Afin d'utiliser la fonction d'image OpenPolygon pour recadrer le contenu de l'image, nous devons d'abord créer un masque d'image transparent de la même taille que l'image d'origine.
$mask = imagecreatetruecolor(imagesx($image), imagesy($image));
$transparent = imagecolorallocatealpha($mask, 0, 0, 0, 127); // Créer un arrière-plan transparent
imagefill($mask, 0, 0, $transparent);
En utilisant la fonction ImageOpenPolygon , nous pouvons dessiner un polygone sur le masque. Ici, nous spécifions la couleur du sommet et de la bordure du polygone.
$polygonColor = imagecolorallocate($mask, 255, 255, 255); // Bordure blanche
imagefilledpolygon($mask, array_merge(...$vertices), count($vertices), $polygonColor); // Dessiner des polygones de remplissage
Dans cette étape, nous utilisons la fonction ImageFildPolygon pour dessiner un polygone blanc et remplir son entraide.
Maintenant que nous avons un masque de polygone, nous pouvons l'appliquer à l'image d'origine pour le recadrage. Nous appliquons le masque à l'image afin que seul le contenu dans la zone de polygone soit affiché.
imagecopymerge($image, $mask, 0, 0, 0, 0, imagesx($image), imagesy($image), 100);
Enfin, sortez l'image recadrée. Vous pouvez utiliser ImageJPEG , ImagePng et d'autres fonctions pour sortir ou enregistrer des images.
header('Content-Type: image/jpeg');
imagejpeg($image); // Image recadrée de sortie
imagedestroy($image); // Libérez des ressources d'image
imagedestroy($mask); // Libérer les ressources de masque
<?php
$image = imagecreatefromjpeg('your_image.jpg'); // Chargement des fichiers d'image
// Définir les sommets du polygone
$vertices = [
[100, 100],
[200, 100],
[200, 200],
[100, 200]
];
// Créer un masque transparent
$mask = imagecreatetruecolor(imagesx($image), imagesy($image));
$transparent = imagecolorallocatealpha($mask, 0, 0, 0, 127);
imagefill($mask, 0, 0, $transparent);
// Dessiner des polygones
$polygonColor = imagecolorallocate($mask, 255, 255, 255);
imagefilledpolygon($mask, array_merge(...$vertices), count($vertices), $polygonColor);
// Images de recadrage avec masque
imagecopymerge($image, $mask, 0, 0, 0, 0, imagesx($image), imagesy($image), 100);
// Image de sortie
header('Content-Type: image/jpeg');
imagejpeg($image);
imagedestroy($image);
imagedestroy($mask);
?>
Grâce aux étapes ci-dessus, nous pouvons utiliser la fonction ImageOpenPolygon de PHP pour réaliser l'écrêtage des régions de polygone. Cette méthode est très flexible et peut être utilisée pour gérer les besoins de coupe complexe et convient à la coupe de la zone de différentes formes. En définissant rationnellement les sommets du polygone, vous pouvez extraire toute partie de l'image avec précision.