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.

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)
Articles similaires
Vous lisez "php générer des images avec transparence", un poste de Fabrizio Zellini
- Publié
- 21 janvier 2009
- Catégories:
- php

1 Commentaire
commentaires | Flux de commentaires [?] | trackback uri [?]