Heim  >  Artikel  >  Backend-Entwicklung  >  Wie zeichne ich grafischen Verifizierungscode mit PHP?

Wie zeichne ich grafischen Verifizierungscode mit PHP?

WBOY
WBOYOriginal
2021-10-20 10:18:072105Durchsuche

Im vorherigen Artikel habe ich Ihnen „Wie zeichnet man Polygone, Bögen und Ellipsen in PHP?“ vorgestellt. (Ausführliche Bild- und Texterklärung) “, das detailliert vorstellt, wie man Grafiken in PHP zeichnet. In diesem Artikel werfen wir einen Blick darauf, wie wir grafische Verifizierungscodes in PHP generieren. Hoffe, es hilft allen!

Wie zeichne ich grafischen Verifizierungscode mit PHP?

Durch unseren vorherigen Artikel zum Zeichnen von Bildern in PHP können wir das darin enthaltene Wissen nutzen, um eine Erweiterung zu erstellen, dh den grafischen Bestätigungscode, den wir häufig auf täglichen Anmeldeseiten verwenden. Wenn Sie lernen möchten, wie man grafische Verifizierungscodes erstellt, schauen wir uns zunächst an, wie man Text in PHP zeichnet.

Text zeichnen

Die Funktionen, die wir üblicherweise zum Zeichnen von Text verwenden, sind:

  • imagechar() : Ein Zeichen horizontal zeichnen imagechar()  :  水平绘制一个字符  

  • imagecharup()  :  垂直绘制一个字符 

  • imagestring()   : 水平绘制一行字符串    

  • imagestringup()  :  垂直绘制一行字符串    

  • imagettftext()

imagecharup (): Zeichne ein Zeichen vertikal


imagestring(): Zeichne eine Zeichenfolge horizontal


Wie zeichne ich grafischen Verifizierungscode mit PHP?

imagestringup() code>: Zeichnen Sie eine Zeichenfolge vertikal <p><br></p> <p><br></p> <code>imagettftext(): Verwenden Sie TrueType-Schriftart, um Text in das Bild zu schreiben


Daunter imagechar(), imagecharup() , imagestring() und Das Syntaxformat der Funktion imagestringup() ist das gleiche:

imagechar(resource $image, int $font, int $x, int $y, string $c, int $color)
Wie zeichne ich grafischen Verifizierungscode mit PHP? Darunter stellt $image die erstellte Leinwand dar, $font stellt die Farbe der gezeichneten Schriftart dar, $x und $y stellen den Zeichentext an der Position der Koordinaten ($x, $y) dar, $c stellt das Zeichen (oder die Zeichenfolge) dar, das gezeichnet werden soll, und $color stellt die Farbe dar gezeichnete Schriftart.

Das Beispiel lautet wie folgt:

<?php
    $a = &#39;young and beautiful&#39;;
    $img = imagecreate(300, 200);
    imagecolorallocate($img, 255, 255, 255);
    $green = imagecolorallocate($img, 0, 255, 0);
    imagestring($img, 5, 5, 50, $a, $green);
    imagestringup($img, 2, 200, 180, $a, $green);
    imagechar($img, 3, 80, 100, $a, $green);
    imagecharup($img, 4, 100, 100, $a, $green);
    header(&#39;Content-type:image/jpeg&#39;);
    imagejpeg($img);
    imagedestroy($img);
?>
Ausgabeergebnis:

Es gibt auch eine Funktion namens imagettftext(), die auch Text zeichnen kann. Der Unterschied besteht darin, dass sie TrueType-Schriftarten verwenden kann Erweiterungen in Windows-Systemen mit dem Namen. Schriftart im TTF-Format, ihr Syntaxformat ist wie folgt:


imagettftext(resource $image, float $size, float $angle, int $x, int $y, int $color, string $fontfile, string $text)

Darunter repräsentiert $size die Größe des Zeichens, $angle repräsentiert den Winkel, 0 Grad in diesem Winkel repräsentiert den von links nach rechts gelesenen Text und den Wert erhöht sich gegen den Uhrzeigersinn; $fontfile stellt den Pfad zur zu verwendenden TrueType-Schriftartdatei dar; $textb stellt die zu zeichnende Zeichenfolge dar.

Wie zeichne ich grafischen Verifizierungscode mit PHP?

Das Beispiel lautet wie folgt:

<?php
    $str1 = &#39;young and beautiful&#39;;
    $font = &#39;C:\Windows\Fonts\simhei.ttf&#39;;
    $img = imagecreate(300, 300);
    imagecolorallocate($img, 255, 255, 255);
    $green = imagecolorallocate($img, 0, 255, 0);
    imagettftext($img, 16, 45, 40, 250, $green, $font, $str1);
    header(&#39;Content-type:image/jpeg&#39;);
    imagejpeg($img);
    imagedestroy($img);
?>

Ausgabeergebnis:


Damit ist das Zeichnen von Text durch die Funktion imagettftext() abgeschlossen.

Wie zeichne ich grafischen Verifizierungscode mit PHP?Zeichnen von grafischen BestätigungscodesWie zeichne ich grafischen Verifizierungscode mit PHP?Wie zeichne ich grafischen Verifizierungscode mit PHP?

Nachdem wir zuvor das Zeichnen von Text und Bildern gelernt haben, können wir das zuvor erlernte Wissen verwenden, um grafische Bestätigungscodes zu zeichnen. In unserer Anmeldeschnittstelle stoßen wir häufig auf Grafiken Schauen Sie sich an, wie man es erstellt. Werfen wir zunächst einen Blick auf den Endeffekt:

🎜🎜🎜🎜🎜Um einen solchen Effekt zu erzielen, müssen Sie einige Schritte durchlaufen: 🎜🎜Der erste Schritt besteht darin, die Leinwand vorzubereiten, die wir benötigen, also zu erstellen die Leinwand. Bereiten Sie dann die Zeichenfolge vor, die wir generieren möchten, zeichnen Sie das Interferenzmuster auf die Leinwand, geben Sie dann das Bild aus und geben Sie schließlich die Ressourcen frei. 🎜🎜Das Beispiel sieht wie folgt aus: 🎜🎜
<?php
check_code();
function check_code($width = 100, $height = 50, $num = 4, $type = &#39;jpeg&#39;) {
 $img = imagecreate($width, $height);
 $string = &#39;&#39;;
 for ($i = 0; $i < $num; $i++) {
 $rand = mt_rand(0, 2);
 switch ($rand) {
 case 0:
 $ascii = mt_rand(48, 57); //0-9
 break;
 case 1:
 $ascii = mt_rand(65, 90); //A-Z
 break;
 case 2:
 $ascii = mt_rand(97, 122); //a-z
 break;
 }
 //chr()
 $string .= sprintf(&#39;%c&#39;, $ascii);
 }
 //背景颜色
 imagefilledrectangle($img, 0, 0, $width, $height, randBg($img));
 //画干扰元素
 for ($i = 0; $i < 50; $i++) {
 imagesetpixel($img, mt_rand(0, $width), mt_rand(0, $height), randPix($img));
 }
 //写字
 for ($i = 0; $i < $num; $i++) {
 $x = floor($width / $num) * $i + 2;
 $y = mt_rand(0, $height - 15);
 imagechar($img, 5, $x, $y, $string[$i], randPix($img));
 }
 //imagejpeg
 $func = &#39;image&#39; . $type;
 $header = &#39;Content-type:image/&#39; . $type;
 if (function_exists($func)) {
 header($header);
 $func($img);
 } else {
 echo &#39;图片类型不支持&#39;;
 }
 imagedestroy($img);
 return $string;
}
//浅色的背景
function randBg($img) {
 return imagecolorallocate($img, mt_rand(130, 255), mt_rand(130, 255), mt_rand(130, 255));
}
//深色的字或者点这些干 扰元素
function randPix($img) {
 return imagecolorallocate($img, mt_rand(0, 120), mt_rand(0, 120), mt_rand(0, 120));
}
?>
🎜Ausgabeergebnis: 🎜🎜🎜🎜🎜🎜🎜🎜Empfohlenes Lernen: „🎜PHP-Video-Tutorial🎜“🎜

Das obige ist der detaillierte Inhalt vonWie zeichne ich grafischen Verifizierungscode mit PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn