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!
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 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
imagechar(resource $image, int $font, int $x, int $y, string $c, int $color)
<?php $a = 'young and beautiful'; $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('Content-type:image/jpeg'); imagejpeg($img); imagedestroy($img); ?>
imagettftext(resource $image, float $size, float $angle, int $x, int $y, int $color, string $fontfile, string $text)
<?php $str1 = 'young and beautiful'; $font = 'C:\Windows\Fonts\simhei.ttf'; $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('Content-type:image/jpeg'); imagejpeg($img); imagedestroy($img); ?>
Damit ist das Zeichnen von Text durch die Funktion imagettftext() abgeschlossen.
Zeichnen von grafischen Bestätigungscodes
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 = 'jpeg') { $img = imagecreate($width, $height); $string = ''; 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('%c', $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 = 'image' . $type; $header = 'Content-type:image/' . $type; if (function_exists($func)) { header($header); $func($img); } else { echo '图片类型不支持'; } 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)); } ?>
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!