通常のテキストを描画します
関数: imagestring()
imagestring ( resource $image , int $font, int $x, int $y, string $s, int $col) : bool
imagestring() Col color を使用して、image で表される画像の x、y 座標に文字列 s を描画します (これは、画像の左上隅の座標です)文字列、画像全体(画像の左上隅は 0,0)。フォントが 1、2、3、4、または 5 の場合は、内蔵フォントが使用されます。
imagestring を使用してフォントを描画するのは非常に簡単です。ただし、フォント サイズが 1 から 5 までしかなく、中国語がサポートされていないという欠点もあります。
<?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);
フォントライブラリを使用してテキストを描画します
imagestringを使用してテキストを描画します。非常に簡単です。しかし、いくつかの欠陥があります。まず第一に、中国語は描画できません。また、イメージストリングを使用して描画されるテキストはあまり大きくなりません。
ここでは、imagettftext を使用してテキストを描画します。フォント サイズの設定に加えて、imagettftext はフォントの傾き角度も設定できます。
使用する前に、ttf 形式のフォントをいくつか見つける必要があります。 Windows システムの C:WindowsFonts ディレクトリには多くのフォントがあります。
<?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);
が描いた絵の効果は以下の通りです:
以上がPHP 画像処理 (中) - テキストの描画の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。