(this post is automatically translated from the original Italian version for your convenience. Sorry in advance for errors)

générer des images avec transparence en php

Dans certains cas, il est nécessaire de générer des images avec des zones transparentes ou transparentes pour créer des effets spéciaux, comme des ombres ou des graphiques de superposition de fond ou du texte.

Le format PNG peut contenir, outre les trois canaux RVB canonique, un autre canal, appelé alpha, qui précise pour chaque pixel son degré de transparence.

La transparence est rien, mais la capacité à réussir ce qui est «dessous» de l'image.

Le 'opacité est à l'opposé de la transparence, un objet opaque ne révèle pas tout ce qui était en dessous.
Opacité = 0 l'objet est transparent, un objet opaque est totalement opaque, ne révèle pas tout ce qui est en dessous.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. rutrum Curabitur velit et Tellus. Quisque vel neque vel enceintes semper velit. nunc convallis accumsan nullam. Duisburg colombe nca risus convallis. Je Phasellus ante, quis rhoncus, nca vulputate, plus digne Eget, velit. Morbi à Mauris accumsan UE urne Mattis. Fringilla masse consectetur Mauris. languette laoreet nullam sit amet Lorem. Classe tacite torquent sociosqu aptent par conubia shore "pour nous, car himenaeos inceptos. En Habitare hac public dictumst. ullamcorper Auguste pulvinar Phasellus. Integer pede sed semper ac feugiat metus. AC velit imperdiet tellus nullam.

Dans l'exemple ci-dessus vous voyez une 'image avec des zones qui sont plus ou moins opaques révéler le texte délibérément se chevauchaient avec les css.

Cela dit, nous verrons comment générer ces images avec du code PHP, en utilisant les fonctions de la bibliothèque GD.

La recette est la suivante:

créer une «image truecolor vous d'abord avec la fonction imagecreatetruecolor .

 ...
 $ Image = imagecreatetruecolor ($ sizeX, sizeY $);
 ...

L'important est alors de prescrire le mode de fusion "avec la fonction imagealphablending et comment sauver le canal alpha de la fonction imagesavealpha .

 ...
 imagealphablending ($ image, false);
 imagesavealpha ($ image, true);
 ...

Maintenant, si nous voulons tirer quelque chose de plus ou moins opaques image, on définit la couleur avec la fonction imagecolorallocatealpha qui dispose de 4 paramètres, la valeur de l'intensité des 3 couleurs, rouge, vert, bleu, et la valeur de la transparence, exprimée en entier compris entre 0 et 127, où 0 indique que la couleur est complètement opaque, pas clair ou rien de ce qui se cache derrière, 127 que la couleur est totalement transparente, ou pleinement reflétés dans l'arrière-plan.

Par exemple, ce code génère un rectangle jaune avec une opacité variable de 0 à 127


 $ SizeX = 300; sizeY = $ 100, $ image = imagecreatetruecolor ($ sizeX, sizeY $) / / Désactiver alpha blending et alpha imagealphablending drapeaux Septembre ($ image, false); imagesavealpha ($ image, true); pour ( $ x = 0; $ x <$ sizeX; $ x + +) ($ opacity = (int) (127,0 / sizeX * $ x) $ color = imagecolorallocatealpha ($ image, 255, 255, 0, $ opacité $); imageline ($ image, $ x, 0, $ x, sizeY-1, $ $ couleur);) ('Content-type: image / png ") de la tête imagepng ($ image); imagedestroy ($ image); 

Et ceci est le résultat (dont vous avez besoin d'un navigateur moderne qui favorise la transparence)

Lorem ipsum dolor sit amet, consectetur adipiscing elit. rutrum Curabitur velit et Tellus. Quisque neque vel velit semper vel enceintes. Nullam convallis nunc accumsan. Duisburg colombe nca risus convallis. Je Phasellus ante, rhoncus quis, nca vulputate, plus digne Eget, velit. Morbi à Mauris accumsan UE urne Mattis. Fringilla masse consectetur Mauris. languette laoreet nullam sit amet Lorem. Classe sociosqu aptent à terre »torquent tacite par conubia nôtre pour himenaeos inceptos. En Habitare hac public dictumst. ullamcorper Auguste pulvinar Phasellus. Integer pede sed semper ac feugiat metus. AC velit imperdiet tellus nullam.

Articles similaires