Position actuelle: Accueil> Derniers articles> Comment réaliser des effets translucides des images par l'image decréation et l'imageal

Comment réaliser des effets translucides des images par l'image decréation et l'imageal

gitbox 2025-09-11
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Cet article est le cadre de code pour un exemple d&#39;article</span></span><span>
</span><span><span class="hljs-comment">// L&#39;article n&#39;a rien à voir avec le code,Ce qui suit n&#39;est que le contenu avant séparation</span></span><span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>

&lt;hr&gt;

</span><span><span class="hljs-comment"># Comment passer imagecreatetruecolor et imagealphablending Implémenter les effets translucides des images?</span></span><span>

exister PHP Bibliothèque de traitement d&#39;image GD milieu,`</span><span><span class="hljs-title function_ invoke__">imagecreatetruecolor</span></span><span>()` et `</span><span><span class="hljs-title function_ invoke__">imagealphablending</span></span><span>()` Ce sont deux fonctions qui sont souvent utilisées ensemble。它们能够帮助开发者exister生成图像时实现半透明效果,Cela rend la superposition d&#39;image plus naturelle。本文将介绍它们的基本原理et实际应用。

</span><span><span class="hljs-comment">## 1. imagecreatetruecolor Le rôle de</span></span><span>
`</span><span><span class="hljs-title function_ invoke__">imagecreatetruecolor</span></span><span>()` Utilisé pour créer une véritable ressource d&#39;image couleur。et `</span><span><span class="hljs-title function_ invoke__">imagecreate</span></span><span>()` différent,它支持更多的颜色深度et更高的质量。La méthode d&#39;appel est la suivante:

```php
</span><span><span class="hljs-variable">$img</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatetruecolor</span></span><span>(</span><span><span class="hljs-number">200</span></span><span>, </span><span><span class="hljs-number">200</span></span><span>);
</span></span>

Cela génère une toile 200 × 200 pour effectuer des opérations de dessin ultérieures.

2. Le rôle d'imagealphable

La fonction ImageAlPhableEnding () est utilisée pour définir le mode de mélange. Si le mode de mélange est activé, les nouveaux pixels sont mélangés avec des pixels existants lors du dessin d'une image ou d'une couleur, résultant en un effet translucide.

Par exemple:

 <span><span><span class="hljs-title function_ invoke__">imagealphablending</span></span><span>(</span><span><span class="hljs-variable">$img</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);
</span></span>

Lorsqu'elles sont définies sur true , les superpositions de couleurs sont mélangées en transparence plutôt que d'écraser directement.

3. Utiliser avec ImagesVealpha

Lors de la génération de PNG avec des effets transparents, vous devez également utiliser ImagesVealpha () pour vous assurer que le canal transparent peut être enregistré correctement:

 <span><span><span class="hljs-title function_ invoke__">imagesavealpha</span></span><span>(</span><span><span class="hljs-variable">$img</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);
</span></span>

De cette façon, la partie transparente prendra effet lors de l'enregistrement du fichier PNG.

4. Exemples réels

Voici un exemple complet de génération d'un rectangle translucide:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Créer une toile</span></span><span>
</span><span><span class="hljs-variable">$img</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatetruecolor</span></span><span>(</span><span><span class="hljs-number">200</span></span><span>, </span><span><span class="hljs-number">200</span></span><span>);

</span><span><span class="hljs-comment">// 开启混合模式et保存透明通道</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagealphablending</span></span><span>(</span><span><span class="hljs-variable">$img</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagesavealpha</span></span><span>(</span><span><span class="hljs-variable">$img</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);

</span><span><span class="hljs-comment">// Affecter un arrière-plan transparent</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">$img</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-title function_ invoke__">imagefilledrectangle</span></span><span>(</span><span><span class="hljs-variable">$img</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">200</span></span><span>, </span><span><span class="hljs-number">200</span></span><span>, </span><span><span class="hljs-variable">$transparent</span></span><span>);

</span><span><span class="hljs-comment">// Distribuez le rouge translucide</span></span><span>
</span><span><span class="hljs-variable">$red</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorallocatealpha</span></span><span>(</span><span><span class="hljs-variable">$img</span></span><span>, </span><span><span class="hljs-number">255</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">75</span></span><span>);

</span><span><span class="hljs-comment">// Dessiner un rectangle</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagefilledrectangle</span></span><span>(</span><span><span class="hljs-variable">$img</span></span><span>, </span><span><span class="hljs-number">50</span></span><span>, </span><span><span class="hljs-number">50</span></span><span>, </span><span><span class="hljs-number">150</span></span><span>, </span><span><span class="hljs-number">150</span></span><span>, </span><span><span class="hljs-variable">$red</span></span><span>);

</span><span><span class="hljs-comment">// Sortir PNG</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">$img</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$img</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Après avoir exécuté le code ci-dessus, le navigateur affichera une image PNG avec un arrière-plan transparent et un rectangle rouge translucide au centre.

5. Résumé

Créez des toiles de haute qualité avec ImageCreateTrueColor () , combinée avec ImageAlPhableEnding () et ImagesVealpha () , les développeurs peuvent facilement atteindre des effets translucides des images. Cette technique est particulièrement utile lors de la génération de filigranes, d'images d'effets spéciaux ou d'éléments d'interface utilisateur. La maîtrise de la combinaison de ces deux fonctions peut rendre le traitement d'image de PHP plus flexible et puissant.