加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP在图像上绘制文字

发布时间:2020-12-13 17:59:22 所属栏目:PHP教程 来源:网络整理
导读:想要在图像中显示文字也需要按坐标位置画上去。在 PHP 中不仅支持多种的字体库,还提供了非常灵活的文字绘制方法。例如,在图像中绘制缩放、倾斜、旋转的文字等。常用的绘制文字的函数如下表所示: 函数名? 描述 imagestring() 水平绘制一行字符串 imagestrin
想要在图像中显示文字也需要按坐标位置画上去。在 PHP 中不仅支持多种的字体库,还提供了非常灵活的文字绘制方法。例如,在图像中绘制缩放、倾斜、旋转的文字等。常用的绘制文字的函数如下表所示:

函数名? 描述
imagestring() 水平绘制一行字符串
imagestringup() 垂直绘制一行字符串
imagechar() 水平绘制一个字符
imagecharup() 垂直绘制一个字符
imagettftext() 用 TrueType 字体向图像中写入文本

虽然这几个函数的功能有所差异,但调用方式是类似的,尤其是 imagestring()、imagestringup()、imagechar() 以及 imagecharup() 函数,它们的参数都是相同的,因此就不再分开介绍了,这些函数的语法格式如下:

imagestring(resource $image,int $font,int $x,int $y,string $s,int $color)
imagestringup(resource $image,int $col)
imagechar(resource $image,string $c,int $color)
imagecharup(resource $image,int $color)

使用这些函数可以在画布 $image 上,坐标为($x,$y)的位置,绘制字符串(或字符) $s,字符串的颜色为 $color,字体为 $font。如果 $font 是 1,2,3,4 或 5,则使用内置字体。

【示例】使用 imagestring()、imagestringup()、imagechar() 和 imagecharup() 函数在画布上绘制文字。
<?php
    $str = 'http://c.biancheng.net/php/';
    $img = imagecreate(300,200);
    imagecolorallocate($img,255,255);
    $red = imagecolorallocate($img,0);
    imagestring($img,5,$str,$red);
    imagestringup($img,2,150,180,$red);
    imagechar($img,3,50,$red);
    imagecharup($img,4,100,$red);
    header('Content-type:image/jpeg');
    imagejpeg($img);
    imagedestroy($img);
?>
运行结果如下图所示:

绘制文字
图:绘制文字

除了上面介绍的那些函数,PHP 中还提供了一个 imagettftext() 函数,它可以使用 TrueType 字体(Windows 系统中扩展名为 .ttf 格式的字体)向图像中写入文本,函数的语法格式如下:

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

参数说明如下:
  • $image:由图象创建函数(例如 imagecreatetruecolor())返回的图象资源;
  • $size:字体的尺寸;
  • $angle:角度制表示的角度,0 度为从左向右读的文本,数值越高则表示将文本进行逆时针旋转。例如 90 度表示从下向上读的文本;
  • $x、$y:表示文本中第一个字符的坐标点(大概是字符左下角的位置);
  • $color:用来设置文本的颜色;
  • $fontfile:是要使用的 TrueType 字体文件的路径;
  • $text:UTF-8 编码的文本字符串。

【示例】使用 imagettftext() 函数在图像上绘制字符。
<?php
    $str1 = 'http://c.biancheng.net/php/';
    $str2 = 'C语言中文网';
    $font = 'C:WindowsFontssimhei.ttf';
    $img = imagecreate(300,300);
    imagecolorallocate($img,255);
    $black = imagecolorallocate($img,0);
    imagettftext($img,16,80,$black,$font,$str2);
    imagettftext($img,90,295,$str1);
    imagettftext($img,135,260,250,45,40,$str1);
    header('Content-type:image/jpeg');
    imagejpeg($img);
    imagedestroy($img);
?>
运行结果如下图所示:

使用 imagettftext() 绘制文字
图:使用 imagettftext() 绘制文本

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读