Gewöhnlichen Text zeichnen
Funktion: imagestring()
imagestring ( resource $image , int $font, int $x, int $y, string $s, int $col) : bool
imagestring() Verwenden Sie col color, um die Zeichenfolge s an das x des durch image dargestellten Bildes zu zeichnen , Y-Koordinate (dies ist die Koordinate der oberen linken Ecke der Zeichenfolge, die obere linke Ecke des gesamten Bildes ist 0, 0). Wenn die Schriftart 1, 2, 3, 4 oder 5 ist, wird die integrierte Schriftart verwendet.
Die Verwendung von Imagestring zum Zeichnen von Schriftarten ist sehr einfach. Aber auch die Mängel liegen auf der Hand: Die Schriftgröße beträgt nur 1 bis 5 und chinesische Schriftzeichen werden nicht unterstützt.
<?php /**绘制文字**/ $imgHandler = imagecreatetruecolor(100,100); // 绘制矩形并填充 $borderCol = imagecolorallocate($imgHandler, 23, 32, 200); imagefilledrectangle($imgHandler, 0, 0, 99, 99, $borderCol); // 绘制水平方向文字 $strColor = imagecolorallocate($imgHandler, mt_rand(0,100), mt_rand(0, 100), mt_rand(0, 100)); imagestring($imgHandler, 5,1, 45, 'hello world', $strColor); // 垂直方向文字 imagestringUp($imgHandler, 5,45, 99, 'hello world', $strColor); header("Content-Type:image/png"); imagepng($imgHandler); imagedestroy($imgHandler);
Verwenden Sie die Schriftartenbibliothek, um Text zu zeichnen
Verwenden Sie Imagestring, um Text zu zeichnen, es ist sehr einfach. Aber es gibt mehrere Mängel. Erstens: Es kann kein Chinesisch zeichnen. Außerdem wird der mit Imagestring gezeichnete Text nicht zu groß.
Hier verwenden wir imagettftext zum Zeichnen von Text. Zusätzlich zur Einstellung der Schriftgröße kann imagettftext auch den Neigungswinkel der Schriftart festlegen.
Vor der Verwendung müssen wir einige Schriftarten im TTF-Format finden. Es gibt viele Schriftarten im Verzeichnis C:WindowsFonts unter dem Windows-System. Die Wirkung des von
<?php /* 使用imagettftext向图像正中写文字 */ $im = imagecreatetruecolor(300, 300); $bgColor = imagecolorallocate($im, 222,222,222); imagefill($im,0, 0, $bgColor); $size = 30; $angle = 0; $font = 'D:\wwwroot\stdphp\img\font/msyhbd.ttf'; $text = '大圣到此一游'; //获取文字信息 $info = imagettfbbox($size, $angle, $font, $text); $minx = min($info[0], $info[2], $info[4], $info[6]); $maxx = max($info[0], $info[2], $info[4], $info[6]); $miny = min($info[1], $info[3], $info[5], $info[7]); $maxy = max($info[1], $info[3], $info[5], $info[7]); ///* 计算文字初始坐标和尺寸 */ $x = $minx; $y = abs($miny); $w = $maxx - $minx; $h = $maxy - $miny; /* 随机文字颜色 */ $textColor = imagecolorallocate($im, mt_rand(0,150), mt_rand(0,150), mt_rand(0,150)); imagettftext($im, $size, $angle, (300 - $w) / 2 + $x, (300 - $h) / 2 + $y, $textColor, $font, $text); header("Content-type:image/png"); imagepng($im); imagedestroy($im);
gezeichneten Bildes ist wie folgt:
Das obige ist der detaillierte Inhalt vonPHP-Bildverarbeitung (mittel) – Text zeichnen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!