Aktueller Standort: Startseite> Neueste Artikel> Wie kann man durch translüzente Effekte von Bildern durch Imagecrreatetruecolor und Bildungsabschiedung erzielen?

Wie kann man durch translüzente Effekte von Bildern durch Imagecrreatetruecolor und Bildungsabschiedung erzielen?

gitbox 2025-09-11
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Dieser Artikel ist das Code -Framework für einen Beispielartikel</span></span><span>
</span><span><span class="hljs-comment">// Artikel hat nichts mit Code zu tun,Das Folgende ist nur der Inhalt vor der Trennung</span></span><span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>

&lt;hr&gt;

</span><span><span class="hljs-comment"># Wie man passt imagecreatetruecolor Und imagealphablending Implementieren Sie durchscheinende Effekte von Bildern?</span></span><span>

existieren PHP Bildverarbeitungsbibliothek GD Mitte,`</span><span><span class="hljs-title function_ invoke__">imagecreatetruecolor</span></span><span>()` Und `</span><span><span class="hljs-title function_ invoke__">imagealphablending</span></span><span>()` Es sind zwei Funktionen, die oft zusammen verwendet werden。它们能够帮助开发者existieren生成图像时实现半透明效果,Dies macht die Bildüberlagerung natürlicher。本文将介绍它们的基本原理Und实际应用。

</span><span><span class="hljs-comment">## 1. imagecreatetruecolor Die Rolle von</span></span><span>
`</span><span><span class="hljs-title function_ invoke__">imagecreatetruecolor</span></span><span>()` Wird verwendet, um eine echte Farbbildressource zu erstellen。Und `</span><span><span class="hljs-title function_ invoke__">imagecreate</span></span><span>()` anders,它支持更多的颜色深度Und更高的质量。Die Anrufmethode lautet wie folgt:

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

Dies erzeugt eine 200 × 200 -Leinwand, um anschließende Zeichenvorgänge zu führen.

2. Die Rolle von imagealPhableending

Mit der Funktion "ImageArPleableDing () wird der Mischmodus eingestellt. Wenn der Mischmodus aktiviert ist, werden neue Pixel mit vorhandenen Pixeln beim Zeichnen eines Bildes oder einer Farbe gemischt, was zu einem durchscheinenden Effekt führt.

Zum Beispiel:

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

Wenn Sie auf True gesetzt sind, werden Farbüberlagerungen eher in Transparenz gemischt, anstatt direkt zu überschreiben.

3.. Verwenden Sie mit Imagesavealpha

Bei der Erzeugung von PNGs mit transparenten Effekten müssen Sie auch Imagesavealpha () verwenden, um sicherzustellen, dass der transparente Kanal korrekt gespeichert werden kann:

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

Auf diese Weise wird der transparente Teil beim Speichern der PNG -Datei wirksam.

4. Tatsächliche Beispiele

Hier ist ein vollständiges Beispiel für die Erzeugung eines durchscheinenden Rechtecks:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Erstellen Sie eine Leinwand</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">// 开启混合模式Und保存透明通道</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">// Transparenten Hintergrund zuweisen</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">// Durchscheinende rot verteilen</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">// Zeichne ein Rechteck</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">// Ausgabe 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>

Nach dem Ausführen des obigen Codes zeigt der Browser ein PNG -Bild mit einem transparenten Hintergrund und einem durchscheinenden roten Rechteck in der Mitte an.

5. Zusammenfassung

Erstellen Sie qualitativ hochwertige Leinwände mit ImagecrreatTueColor () , kombiniert mit imagebildbaren () und imagesavealpha () können Entwickler leicht durchscheinende Effekte von Bildern erzielen. Diese Technik ist besonders nützlich, um Wasserzeichen, Bilder für Spezialeffekte oder UI -Elemente zu erzeugen. Wenn Sie die Kombination dieser beiden Funktionen beherrschen, kann die Bildverarbeitung von PHP flexibler und leistungsfähiger werden.