当前位置: 首页> 最新文章列表> PHP imagestring()函数使用教程:在图像上绘制水平文本

PHP imagestring()函数使用教程:在图像上绘制水平文本

gitbox 2025-07-18

imagestring()函数简介

在PHP中,imagestring()是一个用于在图像上绘制水平文本的内置函数。它广泛用于生成验证码、标注图像文字等场景,特别适合快速输出简单文字内容。

函数的基本语法如下:

bool imagestring ( resource $image , int $font , int $x , int $y , string $string , int $color )

各参数含义如下:

  • $image:图像资源,通常由imagecreatetruecolor()imagecreate()创建。
  • $font:系统内置字体,取值范围为1到5。
  • $x:文字绘制的起始X坐标。
  • $y:文字绘制的起始Y坐标。
  • $string:要绘制的文本字符串。
  • $color:文字颜色,由imagecolorallocate()设置。

创建图像资源

在使用imagestring()前,需要先创建一个图像资源。以下代码创建了一个500×500像素的空白图像:

$im = imagecreatetruecolor(500, 500);

设置颜色与字体

接着定义文本颜色、背景颜色与所用字体:

$font = 4; // 内置字体大小
$color = imagecolorallocate($im, 0, 0, 0); // 黑色文字
$background = imagecolorallocate($im, 255, 255, 255); // 白色背景

绘制文本到图像

完成图像与颜色设置后,即可将文字绘制到图像上。以下示例绘制了“Hello world!”到坐标(50, 50):

imagestring($im, $font, 50, 50,  "Hello world!", $color);

完整示例:在图像中央绘制文本

下面是一个完整的使用示例,将文本“Hello World!”绘制在图像中心,并输出为PNG格式:

$im = imagecreatetruecolor(500, 500);
$white = imagecolorallocate($im, 255, 255, 255);
$red = imagecolorallocate($im, 255, 0, 0);
imagefill($im, 0, 0, $white);

$font = 1;
$x = imagesx($im) / 2 - imagefontwidth($font) * strlen("Hello World!") / 2;
$y = imagesy($im) / 2 - imagefontheight($font) / 2;

imagestring($im, $font, $x, $y, "Hello World!", $red);

header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);

总结

imagestring()是PHP中一个非常实用的图像处理函数,适用于快速将文本渲染到图像上。配合颜色设置和坐标定位,可以灵活地生成各种文字图像输出,尤其适合验证码、动态图像文字水印等应用。