编程语言
首页 > 编程语言> > PHP用imageTtfText函数在图片上写入汉字

PHP用imageTtfText函数在图片上写入汉字

作者:互联网

https://blog.csdn.net/smstong/article/details/43955705

 

PHP绘图,imageString()这个函数并不支持汉字的绘制。这往往会给入门者当头一棒,不过不要着急,因为还有一个imageTtfText()函数,这个函数能绘制UTF-8编码的字符串,当然可以绘制汉字了。

参数:

$size 字体大小,其长度单位依赖于GD库的版本,对于GD2来说是(point)。

简单来说,磅是一个长度度量单位,如果把一英寸等分成72份,每一份就是1磅。这里需要强调的是,磅是个绝对物理单位,与显示设备无关。

像素没有固定的大小,而是与分辨率相关,高分辨率的显示器像素就很小。

然而有些东西是不存在分辨率这个概念的,如单纯的位图图片,它的最小组成部分就是像素,本身也是通过每个像素的颜色值来定义的。把同样的图片显示在不同分辨率的显示器上,最终呈现出的大小是不同的。

以磅为单位的php绘图,遇上像素为单位的位图,需要进行转换:1磅 = PPI/72 个像素

而GD2库却没有提供任何让用户设置或者读取这个分辨率的方法。

因此,使用imageTtfText()不可能精确控制到像素,只能自己根据推算估计。

$angle 旋转角度。这个官网解释的比较清楚,需要说明有两点:一是角度单位是度而不是弧度,二是旋转的中心点就是参数$x,$y。

$x,$y 被绘制字符串的第一个字符的基线点。单位是像素。(单位又是像素了!!!)

字体的基线,不是左上角,而取决于所使用的字体。对于宋体、楷体、黑体等常见的字体中的汉字,这个点大概位于字体的左下部分;而对于英文字母和标点符号,则各不相同。大致都在左下角附近。

$fontfile 字体文件。也就是包含trueType字体字模的文件,如楷体字体文件simkai.ttf,宋体是 simsun.ttf。这种文件的格式是有标准规范的,而且与平台无关。所以可以直接把Windows系统的字体文件拷贝到Linux下使用。

$text 要渲染的字符串。需要注意必须是UTF-8编码的字符串。

PHP的string数据类型。虽然名为string,其实PHP语言本身并不认识各种字符编码,它只是简单的把string看做是动态增长的“字节”数组,例如strlen()就是返回的字节数。而我们知道除了ASCII编码的字符和字节是相同的外,几乎没有其他字符编码中的字符对应一个字节,例如一个汉字的UTF-8编码占用3个字节。至于怎么解释其中的字符编码,需要专门的库函数如iconv_strlen()。如果字符串使用字面量,那么其所在的php源文件就必须编码为UTF-8存储。

标签:编码,UTF,字符,imageTtfText,写入,像素,字体,PHP
来源: https://www.cnblogs.com/mitang/p/10552460.html