Aktueller Standort: Startseite> Neueste Artikel> Praktische Fallanalyse der gemischten Verwendung von ImageFillToBorder und imagecopymerge

Praktische Fallanalyse der gemischten Verwendung von ImageFillToBorder und imagecopymerge

gitbox 2025-09-18
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Front PHP Codebeispiel(Hat nichts mit dem Inhalt des Artikels zu tun)</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"这Jaeins段与文章无关的FrontCodebeispiel"</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>

&lt;hr&gt;

</span><span><span class="hljs-comment"># imagefilltoborder Und imagecopymerge Praktische Fallanalyse der gemischten Verwendung</span></span><span>

existieren PHP Die Bildverarbeitungsfunktion ist,`imagefilltoborder` Und `imagecopymerge` Dies sind zwei sehr praktische Funktionen。Sie haben alle klare Funktionen,Aber wenn beide zusammen verwendet werden,可以实现eins些更加灵活Und高级的图像处理效果。Dieser Artikel verwendet einen praktischen Fall,Detaillierte Analyse der gemischten Verwendungsmethode dieser beiden Funktionen。

</span><span><span class="hljs-comment">## eins、Funktion Einführung</span></span><span>

</span><span><span class="hljs-number">1</span></span><span>. **imagefilltoborder**
   - Funktion:Beginnend mit Farbfüllung aus dem angegebenen Punkt,Bis die angegebene Randfarbe auftritt。
   - Gemeinsame Szenarien:Flächenfüllung implementieren、Hintergrundfüllung komplexer Formen usw.。

   ```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>

Parameterbeschreibung:

  • $ Bild : Zielbildressource.

  • $ x , $ y : Starten Sie die Abfüllpunktkoordinaten.

  • $ border_color : Die Grenzfarbe, aufhören zu füllen, wenn diese Farbe auftritt.

  • $ fill_color : Farbe füllen.

  1. ImageCopyMerge

    • Funktion: Führen Sie ein Bild auf ein anderes Bild und steuern Sie die Transparenz.

    • Häufig verwendete Szenen: Wasserzeichen herstellen, Bilder überlagern, usw.

     <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>

    Parameterbeschreibung:

    • $ dst_image : Zielbildressource.

    • $ src_image : Quellbildressource.

    • $ dst_x , $ dst_y : Die Startkoordinate auf dem Zielbild.

    • $ src_x , $ src_y : Die Startkoordinate auf dem Quellbild.

    • $ src_w , $ src_h : Die Breite und Höhe des Quellbildes.

    • $ PCT : Der Prozentsatz der zusammengeführten Transparenz.

2. Praktischer Fall: Machen Sie die Grenzkarte für die Gradientsgrenze

Nehmen wir an, wir möchten einem Bild einen mit Hochlauf gefüllten Rand hinzufügen und ein durchscheinendes Logo in der Grenze überlagern. Wir können zuerst ImageFillToBorder verwenden, um den Rand zu füllen, und dann ImageCopyMerge zum Hinzufügen von Logo.

Schritt 1: Erstellen Sie Leinwand und Grenzen

 <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">// Definieren Sie die Farbe</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">// Gefüllter Hintergrund mit Weiß</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">// verwenden imagefilltoborder Erstellen Sie einen roten Rand</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>

Schritt 2: Laden Sie das Logo und verschmelzen

 <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">// Annahmen logo Ja 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">// Wille logo Verschmolzen in der unteren rechten Ecke,Transparenz 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>

Schritt 3: Ausgabe des Bildes und die Ressourcen freigeben

 <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. Praktische Analyse

  1. Vorteile der gemischten Verwendung

    • ImageFillToBorder füllt schnell die Hintergrundfarbe eines geschlossenen Bereichs und verringert die Komplexität des manuellen Zeichnens von Grenzen.

    • ImageCopyMerge kann transluzente Elemente in gefüllten Bereichen überlagern, um komplexe Schichteffekte zu erzielen.

    • Die Kombination der beiden ermöglicht eine flexible Verarbeitung von Hintergrund und dekorativen Schichten, um eine visuelle Verschönerung zu erreichen.

  2. Dinge zu beachten

    • Die Randfarbe muss korrekt sein, andernfalls überschreitet der ImageFillToBorder den erwarteten Bereich.

    • Der Transparenzwert von ImageCopymerge sollte entsprechend der Hintergrundfarbe und der Vordergrundkarte eingestellt werden, um eine übermäßige Dunkelheit oder Farbverzerrung zu vermeiden.

    • Bei der Verarbeitung transparenter Hintergrunds von PNG -Bildern müssen Sie sicherstellen, dass das Zielbild den Alpha -Kanal unterstützt, andernfalls geht der Transparenzeffekt verloren geht.

4. Zusammenfassung

In diesem Fall können wir sehen, dass die Kombination von ImageFillToBorder und ImageCopyMerge komplexe Bildverarbeitungseffekte erzielen kann. Füllen Sie zuerst den Bereich mit ImageFillToBorder und fügen Sie dann Dekoration oder Logo mit ImageCopymerge hinzu, wodurch schnell Bilder mit Rändern, Wasserzeichen oder Overlay -Effekten erzeugt werden können. Die Beherrschung der Fähigkeiten bei der Verwendung dieser beiden Funktionen ist für Entwickler von PHP -Image -Verarbeitung eine sehr praktische Fähigkeit.

<hr> <? php // Schwanz -PHP -Codebeispiel (nicht mit dem Inhalt des Artikels bezogen) echo "Dies ist ein Heckcode -Beispiel, das sich nicht mit dem Artikel bezieht"; ?>
 <span></span>