Position actuelle: Accueil> Derniers articles> Analyse de cas pratique de l'utilisation mixte de l'image

Analyse de cas pratique de l'utilisation mixte de l'image

gitbox 2025-09-18
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Devant PHP Exemple de code(N&#39;a rien à voir avec le contenu de l&#39;article)</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"这Ouiun段与文章无关的DevantExemple de code"</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>

&lt;hr&gt;

</span><span><span class="hljs-comment"># imagefilltoborder et imagecopymerge Analyse de cas pratique de l&#39;utilisation mixte</span></span><span>

exister PHP La fonction de traitement d&#39;image est,`imagefilltoborder` et `imagecopymerge` Ce sont deux fonctions très pratiques。Ils ont chacun des fonctions claires,Mais quand les deux sont utilisés ensemble,可以实现un些更加灵活et高级的图像处理效果。Cet article utilisera un cas pratique,Analyse détaillée de la méthode d&#39;utilisation mixte de ces deux fonctions。

</span><span><span class="hljs-comment">## un、Fonction Introduction</span></span><span>

</span><span><span class="hljs-number">1</span></span><span>. **imagefilltoborder**
   - Fonction:En commençant par le remplissage de couleur du point spécifié,Jusqu&#39;à ce que la couleur de bordure spécifiée soit rencontrée。
   - Scénarios courants:Mettre en œuvre le remplissage de la zone、Remplissage de fond des formes complexes, etc.。

   ```php
   </span><span><span class="hljs-title function_ invoke__">imagefilltoborder</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-variable">$x</span></span><span>, </span><span><span class="hljs-variable">$y</span></span><span>, </span><span><span class="hljs-variable">$border_color</span></span><span>, </span><span><span class="hljs-variable">$fill_color</span></span><span>);
</span></span>

Description du paramètre:

  • $ Image : Ressource d'image cible.

  • $ x , $ y : commencez à remplir les coordonnées du point.

  • $ border_color : la couleur limite, arrêtez de remplir lorsque cette couleur est rencontrée.

  • $ fill_color : remplissage de couleur.

  1. imagecopymerge

    • Fonction: fusionnez une image sur une autre image et contrôlez la transparence.

    • Scènes couramment utilisées: faire des filigranes, superposer des images, etc.

     <span><span><span class="hljs-title function_ invoke__">imagecopymerge</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-variable">$dst_x</span></span><span>, </span><span><span class="hljs-variable">$dst_y</span></span><span>, </span><span><span class="hljs-variable">$src_x</span></span><span>, </span><span><span class="hljs-variable">$src_y</span></span><span>, </span><span><span class="hljs-variable">$src_w</span></span><span>, </span><span><span class="hljs-variable">$src_h</span></span><span>, </span><span><span class="hljs-variable">$pct</span></span><span>);
    </span></span>

    Description du paramètre:

    • $ dst_image : ressource d'image cible.

    • $ src_image : ressource d'image source.

    • $ dst_x , $ dst_y : la coordonnée de démarrage sur l'image cible.

    • $ src_x , $ src_y : la coordonnée de démarrage sur l'image source.

    • $ src_w , $ src_h : la largeur et la hauteur de l'image source.

    • $ PCT : Le pourcentage de transparence fusionnée.

2. Cas pratique: faire la carte de la frontière du gradient

Supposons que nous voulons ajouter une bordure remplie de dégradé à une image et superposer un logo translucide à la frontière. Nous pouvons d'abord utiliser ImageFillToborder pour remplir la bordure, puis utiliser ImageCopymerge pour ajouter le logo.

Étape 1: Créez des toiles et des frontières

 <span><span><span class="hljs-variable">$width</span></span><span> = </span><span><span class="hljs-number">400</span></span><span>;
</span><span><span class="hljs-variable">$height</span></span><span> = </span><span><span class="hljs-number">300</span></span><span>;
</span><span><span class="hljs-variable">$image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatetruecolor</span></span><span>(</span><span><span class="hljs-variable">$width</span></span><span>, </span><span><span class="hljs-variable">$height</span></span><span>);

</span><span><span class="hljs-comment">// Définir la couleur</span></span><span>
</span><span><span class="hljs-variable">$white</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorallocate</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">255</span></span><span>, </span><span><span class="hljs-number">255</span></span><span>, </span><span><span class="hljs-number">255</span></span><span>);
</span><span><span class="hljs-variable">$black</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorallocate</span></span><span>(</span><span><span class="hljs-variable">$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-variable">$red</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorallocate</span></span><span>(</span><span><span class="hljs-variable">$image</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-comment">// Fond rempli de blanc</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagefill</span></span><span>(</span><span><span class="hljs-variable">$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">$white</span></span><span>);

</span><span><span class="hljs-comment">// utiliser imagefilltoborder Créer une bordure rouge</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagefilltoborder</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-variable">$white</span></span><span>, </span><span><span class="hljs-variable">$red</span></span><span>);
</span></span>

Étape 2: Chargez le logo et fusionnez

 <span><span><span class="hljs-variable">$logo</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatefrompng</span></span><span>(</span><span><span class="hljs-string">'logo.png'</span></span><span>); </span><span><span class="hljs-comment">// Hypothèses logo Oui PNG Format</span></span><span>
</span><span><span class="hljs-variable">$logo_width</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagesx</span></span><span>(</span><span><span class="hljs-variable">$logo</span></span><span>);
</span><span><span class="hljs-variable">$logo_height</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagesy</span></span><span>(</span><span><span class="hljs-variable">$logo</span></span><span>);

</span><span><span class="hljs-comment">// Volonté logo Fusionné dans le coin inférieur droit,transparence 50%</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagecopymerge</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-variable">$logo</span></span><span>, </span><span><span class="hljs-variable">$width</span></span><span> - </span><span><span class="hljs-variable">$logo_width</span></span><span> - </span><span><span class="hljs-number">10</span></span><span>, </span><span><span class="hljs-variable">$height</span></span><span> - </span><span><span class="hljs-variable">$logo_height</span></span><span> - </span><span><span class="hljs-number">10</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">$logo_width</span></span><span>, </span><span><span class="hljs-variable">$logo_height</span></span><span>, </span><span><span class="hljs-number">50</span></span><span>);
</span></span>

Étape 3: Sortir l'image et libérer les ressources

 <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">$image</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$logo</span></span><span>);
</span></span>

Iii. Analyse pratique

  1. Avantages de l'utilisation mixte

    • ImageFillToborder remplit rapidement la couleur d'arrière-plan de toute zone fermée, réduisant la complexité des frontières manuelles.

    • L'imagecopymerge peut superposer des éléments translucides sur des zones remplies pour obtenir des effets de couche complexes.

    • La combinaison des deux permet un traitement flexible de fond et de couches décoratives pour réaliser une embellissement visuel.

  2. Choses à noter

    • La couleur de la bordure doit être correcte, sinon l'imageFillToborder dépassera la plage attendue.

    • La valeur de transparence de l'imagecopymerge doit être ajustée en fonction de la couleur d'arrière-plan et de la carte de premier plan pour éviter l'obscurité excessive ou la distorsion de la couleur.

    • Lors du traitement de l'arrière-plan transparent des images PNG, vous devez vous assurer que l'image cible prend en charge le canal alpha, sinon l'effet de transparence sera perdu.

4. Résumé

Dans ce cas, nous pouvons voir que la combinaison de l'image de la commande et de l'imagecopymère peut obtenir des effets de traitement d'image complexes. Remplissez d'abord la zone avec ImageFillToborder , puis ajoutez la décoration ou le logo avec Imagecopymerge , qui peut rapidement créer des images avec des frontières, des filigranes ou des effets de superposition. La maîtrise des compétences de l'utilisation de ces deux fonctions est une compétence très pratique pour les développeurs de traitement d'image PHP.

<hr> <? PHP // Tail Php Code Exemple (non lié au contenu de l'article) Echo "Ceci est un exemple de code de queue qui n'est pas lié à l'article"; ?>
 <span></span>