Dans PHP, nous pouvons utiliser la fonction ImageColorAllocatEalpha et la fonction ImagesVealpha pour définir le canal transparent de l'image, de sorte que l'image prend en charge un arrière-plan transparent. Ceci est très utile pour conserver la transparence lors de la génération d'images PNG, du traitement d'image en mouvement ou de l'édition d'images. Cet article expliquera en détail comment utiliser ces deux fonctions pour gérer les images transparentes.
Tout d'abord, nous devons créer une image vierge et lui attribuer la couleur. Si vous voulez que l'image prenne en charge un arrière-plan transparent, nous devons définir la couleur transparente de l'image.
<?php
// Créer un 500x500 Image blanche
$image = imagecreatetruecolor(500, 500);
// Permet la sauvegarde des informations de transparence
imagesavealpha($image, true);
// Définir les couleurs transparentes (passer imagecolorallocatealpha Attribuer des couleurs)
// imagecolorallocatealpha(ressource, rouge, vert, bleu, transparence)
// transparence的范围是 0 arriver 127,0 Indique une option totale,127 Indique une transparence complète
$transparent = imagecolorallocatealpha($image, 255, 255, 255, 127);
// Remplissez l'arrière-plan de l'image comme transparent
imagefill($image, 0, 0, $transparent);
// D'autres opérations de dessin peuvent être effectuées ici
// Image de sortie(Pour les tests,Nous enregistrons des images)
imagepng($image, "transparent_image.png");
// 销毁图像ressource
imagedestroy($image);
?>
ImageCreateTrueColor () crée une véritable ressource d'image couleur de 500x500.
La fonction ImagesVealpha () permet la prise en charge de la transparence des images, de sorte que les canaux transparents peuvent être conservés lors de l'enregistrement des images PNG.
La fonction ImageColorallocatealPha () attribue une couleur transparente à l'image. Dans cet exemple, nous définissons une couleur complètement transparente pour l'arrière-plan de l'image (la transparence est de 127).
ImageFill () remplit l'image entière d'un arrière-plan transparent.
Si vous souhaitez dessiner d'autres éléments sur une image avec un arrière-plan transparent, vous pouvez utiliser la fonction ImageColorAllocatealpha pour définir une transparence différente. Par exemple, nous pouvons dessiner un rectangle avec transparence sur l'image.
<?php
// Créer un 500x500 Image blanche
$image = imagecreatetruecolor(500, 500);
// Permet la sauvegarde des informations de transparence
imagesavealpha($image, true);
// Définir des arrière-plans transparents
$transparent = imagecolorallocatealpha($image, 255, 255, 255, 127);
imagefill($image, 0, 0, $transparent);
// Définir une couleur rectangulaire translucide
$semiTransparent = imagecolorallocatealpha($image, 255, 0, 0, 64); // 半透明的rouge
// Dessiner un rectangle translucide
imagefilledrectangle($image, 50, 50, 200, 200, $semiTransparent);
// Image de sortie
imagepng($image, "semi_transparent_rectangle.png");
// 销毁图像ressource
imagedestroy($image);
?>
Dans ce code, nous définissons un rouge translucide pour le rectangle (la transparence est 64). De cette façon, la zone rectangulaire aura un certain effet transparent, et vous pouvez voir le fond à travers la partie rectangulaire.
Lorsque vous utilisez des fonctions ImageColorAllocatEalpha et ImagesVealpha , assurez-vous d'enregistrer l'image dans un format transparent tel que PNG.
<?php
// Créer un 500x500 Image blanche
$image = imagecreatetruecolor(500, 500);
// Permet la sauvegarde des informations de transparence
imagesavealpha($image, true);
// Définir des arrière-plans transparents
$transparent = imagecolorallocatealpha($image, 255, 255, 255, 127);
imagefill($image, 0, 0, $transparent);
// Ici, vous pouvez dessiner d'autres éléments...
// Image de sortiearriver浏览器
header('Content-Type: image/png');
imagepng($image);
// 销毁图像ressource
imagedestroy($image);
?>
Dans cet exemple, nous publions l'image directement vers le navigateur via ImagePng () . N'oubliez pas d'utiliser l'en-tête ('Content-Type: image / png') pour vous assurer que le navigateur reconnaît correctement le type d'image.
En utilisant des fonctions ImageColorAllocatEalpha et ImagesVealpha , PHP rend le traitement des images avec des canaux transparents plus simples et plus efficaces. Que la création d'une image avec un arrière-plan transparent ou des éléments de dessin avec transparence sur l'image vous donnera plus de flexibilité et de contrôle.