Dans l'extension de traitement d'image de PHP GD, c'est une fonction très pratique. Il peut définir des effets de couche pour les ressources d'image, réalisant ainsi diverses effets de superposition, de mélange ou transparents. Cet article analysera ses méthodes d'utilisation et ses opérations de base en détail.
Prototype de fonction:
<span><span>bool</span></span><span> </span><span><span class="function_ invoke__">ImageLeLayeReffect</span></span> <span>(Ressource</span> <span><span>$ image</span></span> <span>,</span> <span><span>int</span></span><span> </span><span><span>$ effet</span></span> <span>) </span><p>Description du paramètre:</p><ul><li> <span class="fun">$ Image</span> : la ressource d'image qui nécessite de définir l'effet de couche, qui est généralement généré par des fonctions telles que <span class="fun"><a href="/fr/php/imagecreatetruecolor.html" target="_blank">ImageCreateTrueColor ()</a></span> ou <span class="fun"><a href="/fr/php/imagecreatefromjpeg.html" target="_blank">ImageCreateFromJPEG ()</a></span> .</li><li> <span class="fun">$ Effect</span> : Effet de couche constante, vous pouvez utiliser une variété d'effets fournis par GD, tels que:</li><ul><li> <span class="fun">IMG_EFFECT_REPLACE</span> : effet par défaut, remplacez les pixels de l'image.</li><li> <span class="fun">IMG_EFFECT_ALPHABLEnd</span> : Mode hybride, prend en charge la superposition transparente des canaux alpha.</li><li> <span class="fun">IMG_EFFECT_NORMAL</span> : Mode de dessin normal.</li><li> <span class="fun">IMG_EFFECT_OVERLAY</span> : Mode d'écrasement, utilisé pour mettre en surbrillance ou observer les effets.</li></ul></ul><h2> <span><span>2.</span></span> <span>Exemples d'utilisation de base</span><p> Voici un exemple simple montrant comment définir les effets de couche sur une image et dessiner des rectangles semi-transparents:</p><pre> <? Php <span><span>// Créer une image vierge</span></span><span> </span><span><span>$ IMG</span></span> <span>=</span> <span><span class="function_ invoke__">ImageCreateTrueColor</span></span> <span>(</span> <span><span>400</span></span> <span>,</span> <span><span>300</span></span> <span>); </span><span><span>// Remplissez l'arrière-plan avec blanc</span></span><span> </span><span><span>$ white</span></span> <span>=</span> <span><span class="function_ invoke__">ImageColorAllocate</span></span> <span>(</span> <span><span>$ img</span></span> <span>,</span> <span><span>255</span></span> <span>,</span> <span><span>255</span></span> <span>,</span> <span><span>255</span></span> <span>); </span><span><span class="function_ invoke__">ImageFill</span></span> <span>(</span> <span><span>$ img</span></span> <span>,</span> <span><span>0</span></span> <span>,</span> <span><span>0</span></span> <span>,</span> <span><span>$ blanc</span></span> <span>); </span><span><span>// Définissez l'effet de couche sur Alphablend</span></span><span> </span><span><span class="function_ invoke__">ImageLayeReffect</span></span> <span>(</span> <span><span>$ IMG</span></span> <span>, IMG_EFFECT_ALPHABLEND); </span><span><span>// attribue le rouge translucide</span></span><span> </span><span><span>$ red</span></span> <span>=</span> <span><span class="function_ invoke__">ImageColorallocatealpha</span></span> <span>(</span> <span><span>$ img</span></span> <span>,</span> <span><span>255</span></span> <span>,</span> <span><span>0</span></span> <span>,</span> <span><span>0</span></span> <span>,</span> <span><span>63</span></span> <span>); </span><span><span>// dessiner un rectangle translucide</span></span><span> </span><span><span class="function_ invoke__">ImageFilDectangle</span></span> <span>(</span> <span><span>$ IMG</span></span> <span>,</span> <span><span>50</span></span> <span>,</span> <span><span>50</span></span> <span>,</span> <span><span>350</span></span> <span>,</span> <span><span>250</span></span> <span>,</span> <span><span>$ rouge</span></span> <span>); </span><span><span>// Image de sortie</span></span><span> </span><span><span class="function_ invoke__">En-tête</span></span> <span>(</span> <span><span>'Content-Type: image / png'</span></span> <span>); </span><span><span class="function_ invoke__">ImagePng</span></span> <span>(</span> <span><span>$ img</span></span> <span>); </span><span><span class="function_ invoke__">iMageDestroy</span></span> <span>(</span> <span><span>$ img</span></span> <span>); ?> </span><p>Le résultat de l'exécution affichera un rectangle rouge translucide sur un fond blanc, et l'effet de superposition transparent est obtenu via <span class="fun">IMG_EFFECT_ALPHABLEND</span> .</p><h2> <span><span>3.</span></span> <span>Utilisez plusieurs effets de couche en combinaison</span><p> Dans les applications pratiques, vous devrez peut-être utiliser différents effets de couche en même temps. Par exemple, dessiner du texte ou une superposition multi-images, vous pouvez d'abord définir le calque sur <span class="fun">img_effectect_ormal</span> pour dessiner l'élément de base, puis passer à <span class="fun">IMG_EFFECT_ALPHABLEND</span> pour superposer l'effet semi-transparent:</p><pre> <span><span class="function_ invoke__">ImageLayeReffect</span></span> <span>(</span> <span><span>$ IMG</span></span> <span>, IMG_EFFECT_NORMAL); </span><span><span class="function_ invoke__">ImageString</span></span> <span>(</span> <span><span>$ img</span></span> <span>,</span> <span><span>5</span></span> <span>,</span> <span><span>10</span></span> <span>,</span> <span><span>10</span></span> <span>,</span> <span><span>"Hello World"</span></span> <span>,</span> <span><span>$ noir</span></span> <span>); </span><span><span class="function_ invoke__">ImageLayeReffect</span></span> <span>(</span> <span><span>$ IMG</span></span> <span>, IMG_EFFECT_ALPHABLEND); </span><span><span class="function_ invoke__">ImageFilDectangle</span></span> <span>(</span> <span><span>$ IMG</span></span> <span>,</span> <span><span>20</span></span> <span>,</span> <span><span>50</span></span> <span>,</span> <span><span>200</span></span> <span>,</span> <span><span>150</span></span> <span>,</span> <span><span>$ SemitRansparentBlue</span></span> <span>); </span><p>En changeant de manière flexible les paramètres d' <span class="fun">imageLayEreffect ()</span> , les opérations de couche complexes et les effets d'image peuvent être obtenues.</p><h2> <span><span>4.</span></span> <span>Choses à noter</span><ul><li> Lorsque vous utilisez <span class="fun">IMG_EFFECT_ALPHABLEND</span> , assurez-vous que l'image prend en charge les canaux alpha (défini via <span class="fun">imagesVavealpha ()</span> ).</li><li> Différentes versions GD peuvent ne pas prendre en charge complètement certains effets, veuillez combiner la documentation officielle et les tests réels.</li><li> L'effet de couche n'est valable que pour les opérations de dessin ultérieures, et le contenu dessiné auparavant ne sera pas affecté.</li></ul><h2> <span><span>5.</span></span> <span>Résumé</span><p> <span class="fun">IMAMELAYEREFFECT ()</span> est une fonction clé dans l'extension GD pour implémenter le mélange de couche et la superposition transparente. La maîtrise de son utilisation peut facilement réaliser divers effets spéciaux tels que les rectangles translucides, les superpositions de texte et les superpositions d'image. La clé est de comprendre le rôle de chaque effet constant et de changer de manière flexible en fonction de vos besoins.</p><p> Grâce à l'explication et aux exemples de cet article, je pense que vous pouvez rapidement démarrer avec les opérations de base des effets de la couche d'image et ajouter plus de créativité et d'expressivité à votre projet de traitement d'image PHP.</p></div></div>