<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Titre d'article:imagealphablending et imagecopy Comment l'utiliser ensemble?Démonstration correcte de la synthèse transparente</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
---
exister PHP Lorsque le traitement d'image est effectué,`imagealphablending` et `imagecopy` Ce sont deux fonctions très couramment utilisées,尤其是exister涉及透明度合成et图像合成的场景中。Utiliser en combinant ces deux fonctions,Peut réaliser la synthèse d'image avec un fond transparent,像是exister海报制作、GIF Il est très pratique dans les opérations de synthèse et d'addition de filigrane.。
</span><span><span class="hljs-comment">### 1. `imagealphablending` Fonction Introduction</span></span><span>
`imagealphablending` C'est une fonction qui contrôle si l'image est activée.。它影响的是图像的透明度et混合方式。Lorsque le mode hybride est allumé,La partie transparente de l'image sera synthétisée en fonction de la couleur de l'image d'arrière-plan。
</span><span><span class="hljs-comment">#### Prototype de fonction:</span></span><span>
```php
</span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-title function_ invoke__">imagealphablending</span></span><span>(resource </span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-variable">$blendmode</span></span><span>);
</span></span>
$ Image : la ressource d'image qui doit être exploitée.
$ BlendMode : valeur booléenne, vrai signifie activer le mode de mélange, faux moyen pour désactiver le mode de mélange.
Par défaut, ImageAlPhableEnding agit pour activer le mode de mélange, ce qui signifie que la partie transparente des pixels se mélangera avec l'image d'arrière-plan.
La fonction ImageCopy est utilisée pour copier une image sur un emplacement spécifié dans une autre image. Il prend en charge la copie des pixels transparents, il peut donc être utilisé en conjonction avec ImageAlPhableEnding en traitement lors du traitement de l'image transparente.
<span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-title function_ invoke__">imagecopy</span></span><span>(resource </span><span><span class="hljs-variable">$dst_image</span></span><span>, resource </span><span><span class="hljs-variable">$src_image</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$dst_x</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$dst_y</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$src_x</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$src_y</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$src_width</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$src_height</span></span><span>);
</span></span>
$ dst_image : ressource d'image cible.
$ src_image : ressource d'image source.
$ dst_x , $ dst_y : la position dans le coin supérieur gauche de l'image cible.
$ src_x , $ src_y : la position dans le coin supérieur gauche de l'image source.
$ src_width , $ src_height : la largeur et la hauteur de la zone à copier à partir de l'image source.
Lorsque vous effectuez une synthèse d'image transparente, il est le plus important de s'assurer que les images source et cible gèrent correctement la transparence. Voici une démonstration correcte de synthèse transparente, combinant l'imagination et l'imagecopie .
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 创建目标图像et源图像资源</span></span><span>
</span><span><span class="hljs-variable">$dst_image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatetruecolor</span></span><span>(</span><span><span class="hljs-number">500</span></span><span>, </span><span><span class="hljs-number">500</span></span><span>);
</span><span><span class="hljs-variable">$src_image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatefrompng</span></span><span>(</span><span><span class="hljs-string">'source_image.png'</span></span><span>); </span><span><span class="hljs-comment">// Supposons que l'image source est un PNG Format</span></span><span>
</span><span><span class="hljs-comment">// Définir un arrière-plan transparent pour l'image cible</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagesavealpha</span></span><span>(</span><span><span class="hljs-variable">$dst_image</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);
</span><span><span class="hljs-variable">$transparent</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorallocatealpha</span></span><span>(</span><span><span class="hljs-variable">$dst_image</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">127</span></span><span>); </span><span><span class="hljs-comment">// Couleur transparente</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagefill</span></span><span>(</span><span><span class="hljs-variable">$dst_image</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-variable">$transparent</span></span><span>);
</span><span><span class="hljs-comment">// Activer le mode hybride transparent</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagealphablending</span></span><span>(</span><span><span class="hljs-variable">$dst_image</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagecopy</span></span><span>(</span><span><span class="hljs-variable">$dst_image</span></span><span>, </span><span><span class="hljs-variable">$src_image</span></span><span>, </span><span><span class="hljs-number">100</span></span><span>, </span><span><span class="hljs-number">100</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-title function_ invoke__">imagesx</span></span><span>(</span><span><span class="hljs-variable">$src_image</span></span><span>), </span><span><span class="hljs-title function_ invoke__">imagesy</span></span><span>(</span><span><span class="hljs-variable">$src_image</span></span><span>));
</span><span><span class="hljs-comment">// Sortir l'image synthétisée</span></span><span>
</span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'Content-Type: image/png'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagepng</span></span><span>(</span><span><span class="hljs-variable">$dst_image</span></span><span>);
</span><span><span class="hljs-comment">// Nettoyer les ressources</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$dst_image</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$src_image</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Créer une image cible :
Utilisez ImageCreateTrueColor () pour créer une ressource d'image cible de taille 500x500.
Chargement de l'image source :
Utilisez ImageCreateFrommpng () pour charger l'image source, et nous supposons qu'il s'agit d'un fichier PNG, car PNG prend en charge les arrière-plans transparents.
Définir un arrière-plan transparent :
ImagesVealpha () dit à PHP pour enregistrer les informations de transparence de l'image.
ImageColorAllocatEalPha () attribue une couleur transparente et remplit l'image cible entière avec ImageFill () pour s'assurer que l'image cible est transparente.
Activez le mode hybride transparent :
Utilisez ImageAlphable
Image synthétisée :
Utilisez ImageCopy () pour copier l'image source sur la position spécifiée de l'image cible. L'effet de synthèse maintiendra la transparence de l'image source.
Image de sortie :
Enfin, l'image synthétisée est sortie via ImagePng () .
Nettoyer des ressources :
Utilisez iMageDestroy () pour nettoyer les ressources de l'image pour éviter les fuites de mémoire.
La combinaison des fonctions d'imagealphable et d'imagecopie rend PHP très efficace lors du traitement de la synthèse d'image avec la transparence. La clé consiste à s'assurer que l'image cible peut traiter correctement les informations de transparence et activer le mode de mélange transparent pendant la synthèse, afin de s'assurer que les parties transparentes de l'image source peuvent être affichées correctement.
En utilisant rationnellement ces deux fonctions, nous pouvons facilement réaliser l'effet de synthèse des images transparentes, qui conviennent à divers scénarios d'édition d'images qui nécessitent un traitement de transparence.