Bei der Verarbeitung von Bildern sind Wasserzeichen eine häufige Möglichkeit, das Urheberrecht zu schützen oder die Markenerkennung zu verbessern. PHP bietet uns viele Funktionen für die Bildverarbeitung, wobei ImageStringUp () eine Funktion ist, die vertikale Text zeichnet, die sehr geeignet ist, um Bildern vertikale Wasserzeichen hinzuzufügen. Heute werden wir erklären, wie Sie vertikale Wasserzeichen unter Verwendung der ImageStringUp () -Funktion in PHP zeichnen.
Zunächst müssen Sie sicherstellen, dass Ihre PHP -Umgebung die GD -Bibliothek unterstützt, da ImageStringUp () Teil der GD -Bibliothek ist. Die GD -Bibliothek ist eine häufig verwendete Bildverarbeitungsbibliothek in PHP und kann normalerweise aktiviert werden, wenn PHP installiert ist. Sie können überprüfen, ob Ihr PHP die GD -Bibliothek ermöglicht, indem Sie den folgenden Code befolgen:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">function_exists</span></span><span>(</span><span><span class="hljs-string">'gd_info'</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"GD library is enabled!"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"GD library is not enabled!"</span></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Wenn Ihre Umgebung die GD -Bibliothek nicht aktiviert, müssen Sie sie in der Php.ini -Datei aktivieren oder mit dem Paketmanager installieren.
Der grundlegende Prozess des Zeichnens vertikaler Wasserzeichen lautet wie folgt:
Erstellen oder laden Sie das Zielbild.
Setzen Sie Wasserzeichen Text, Schriftart, Farbe usw.
Verwenden Sie ImageStringUp () , um vertikalen Text zu zeichnen.
Ausgabe oder Speichern des verarbeiteten Bildes.
Hier finden Sie ein vollständiges Beispiel für PHP -Code, das zeigt, wie ImageStRingUp () ein Bild mit vertikalem Wasserzeichen zu einem Bild hinzufügt.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Erstellen Sie ein Hintergrundbild</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-number">800</span></span><span>, </span><span><span class="hljs-number">600</span></span><span>);
</span><span><span class="hljs-comment">// Wählen Sie Hintergrundfarbe</span></span><span>
</span><span><span class="hljs-variable">$bg_color</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-comment">// Weißer Hintergrund</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">$bg_color</span></span><span>);
</span><span><span class="hljs-comment">// Beschriftungsdateien laden</span></span><span>
</span><span><span class="hljs-variable">$font</span></span><span> = </span><span><span class="hljs-string">'./path/to/your/font.ttf'</span></span><span>; </span><span><span class="hljs-comment">// Bitte stellen Sie sicher</span></span><span>
</span><span><span class="hljs-comment">// Legen Sie den Textinhalt des Wasserzeichens ein</span></span><span>
</span><span><span class="hljs-variable">$watermark_text</span></span><span> = </span><span><span class="hljs-string">'Your Watermark'</span></span><span>;
</span><span><span class="hljs-comment">// Stellen Sie die Schriftgröße ein</span></span><span>
</span><span><span class="hljs-variable">$font_size</span></span><span> = </span><span><span class="hljs-number">20</span></span><span>;
</span><span><span class="hljs-comment">// Wasserzeichen Textfarbe(grau)</span></span><span>
</span><span><span class="hljs-variable">$watermark_color</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">100</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-comment">// Berechnen Sie die Breite und Höhe des Wasserzeichentextes</span></span><span>
</span><span><span class="hljs-variable">$bbox</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagettfbbox</span></span><span>(</span><span><span class="hljs-variable">$font_size</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-variable">$font</span></span><span>, </span><span><span class="hljs-variable">$watermark_text</span></span><span>);
</span><span><span class="hljs-variable">$watermark_width</span></span><span> = </span><span><span class="hljs-title function_ invoke__">abs</span></span><span>(</span><span><span class="hljs-variable">$bbox</span></span><span>[</span><span><span class="hljs-number">2</span></span><span>] - </span><span><span class="hljs-variable">$bbox</span></span><span>[</span><span><span class="hljs-number">0</span></span><span>]);
</span><span><span class="hljs-variable">$watermark_height</span></span><span> = </span><span><span class="hljs-title function_ invoke__">abs</span></span><span>(</span><span><span class="hljs-variable">$bbox</span></span><span>[</span><span><span class="hljs-number">5</span></span><span>] - </span><span><span class="hljs-variable">$bbox</span></span><span>[</span><span><span class="hljs-number">3</span></span><span>]);
</span><span><span class="hljs-comment">// Draw vertikaler Wasserzeichen -Text zeichnen</span></span><span>
</span><span><span class="hljs-variable">$x</span></span><span> = </span><span><span class="hljs-number">50</span></span><span>; </span><span><span class="hljs-comment">// Setzen Sie den Textmark -TextXkoordinieren</span></span><span>
</span><span><span class="hljs-variable">$y</span></span><span> = </span><span><span class="hljs-number">100</span></span><span>; </span><span><span class="hljs-comment">// Setzen Sie den Textmark -TextYkoordinieren</span></span><span>
</span><span><span class="hljs-comment">// verwendenimagestringupVertikalen Text zeichnen</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagestringup</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">5</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">$watermark_text</span></span><span>, </span><span><span class="hljs-variable">$watermark_color</span></span><span>);
</span><span><span class="hljs-comment">// Ausgabebild</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">$image</span></span><span>);
</span><span><span class="hljs-comment">// Freier Speicher</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-meta">?></span></span><span>
</span></span>
Erstellen Sie ein Bild:
Verwenden Sie ImagecrreatTueColor (), um eine leere Leinwand von 800 x 600 zu erstellen. Sie können die Größe der Leinwand nach Bedarf einstellen.
Erstellen Sie dann einen weißen Hintergrund mit ImageColOralCode () und füllen Sie die Leinwand.
Schriften laden:
In diesem Beispiel haben wir TrueType Font ( .ttf -Datei) verwendet und müssen den Pfad zur Schriftart Datei angeben. Der Weg zur Schriftart kann ein relativer oder absoluter Weg sein.
Setzen Sie den Wasserzeichen -Text:
Zeichnen vertikalen Text durch ImagestringUp () . Die Parameter dieser Funktion umfassen Bildressourcen, Schriftgröße, X- und Y -Koordinaten, Textinhalt und Textfarbe.
Berechnen Sie die Breite und Höhe des Wasserzeichentextes:
Um das Wasserzeichen auf das Bild ausrichten zu lassen, haben wir die Breite und Höhe des Wasserzeichentextes berechnet. ImagettFbbox () gibt ein Array zurück, das Begrenzungsboxen enthält und die Größe des Textes berechnet.
Zeichnen Sie ein Wasserzeichen:
Verwenden Sie schließlich ImageStringUp () , um den vertikalen Text an der angegebenen Position mit der Textfarbe grau zu zeichnen.
Ausgabebild:
Verwenden Sie ImagePng () , um das Bild auszugeben. Diese Funktion gibt das Bild im PNG -Format zum Browser aus. Sie können nach Bedarf andere Formate ausgeben, wie z. B. ImageJpeg () oder ImageGif () .
Freier Speicher:
Verwenden Sie ImagingStroy (), um Bildressourcen freizugeben, um Speicherlecks zu vermeiden.
Schriftauswahl: In Windows -Systemen sind die mit dem System gelieferten Schriftarten normalerweise im .ttf -Format enthalten, während unter Linux die Pfade der Schriftartdateien variieren können. Stellen Sie sicher, dass der Schriftart korrekt ist, andernfalls wird die Schriftart nicht geladen.
Wasserzeichen Position: Sie können die Position des Wasserzeichens durch Einstellen der Koordinaten von x und y einstellen. Wenn mehr Kontrolle benötigt wird, kann die Bildgröße vor dem Zeichnen des Textes berechnet werden und die Position der Wasserzeichen kann dynamisch eingestellt werden.
Leistungsoptimierung: Wenn das Bild groß ist, verbraucht die Bildverarbeitung mehr Ressourcen. Wenn Sie eine große Anzahl von Bildern häufig verarbeiten müssen, sollten Sie Cache oder asynchrone Verarbeitung in Betracht ziehen.
ImagestringUp () ist eine sehr praktische Funktion in der PHP -GD -Bibliothek, die speziell zum Zeichnen von vertikalen Textwasserzeichen verwendet wird. In diesem Tutorial beschreiben wir, wie Sie ein vertikales Wasserzeichen erstellen, einschließlich der vollständigen Schritte von der Bilderstellung bis zur Ausgabe. Ich hoffe, Sie können lernen, wie Sie in diesem Tutorial in PHP problemlos einen vertikalen Textwasserzeicheneffekt erzielen und in Ihrem Projekt flexibel verwenden können.