【PHP】GD库笔记 初探GD库的坐标

本文探讨了PHP GD库在使用imagettftext添加文字时坐标不精确的问题,详细介绍了GD库的坐标系统。通过建立画布、格式栅栏化、在指定位置添加文字和确定字符盒装矩形范围来理解文字插入的原理。注意到GD库的坐标以文字基线为参考,imagettftext函数返回的文字矩形区域并不包含坐标原点。文章还提到了编码问题和不支持自动换行的特性。
摘要由CSDN通过智能技术生成

昨天在用GD库的imagettftext在图片上写字的时候,发现写字的坐标并不是很精确的按照指定的参数的位置插入字体的,一直觉得很诡异。由于GD库中很多画图操作都是以坐标为基础的,因而就花了点时间了解了一下GD的坐标系统。

1.建立画布

$im = imagecreatetruecolor(200,200);

$im = imagecreatetruecolor(200,200);

当然也可以直接从png,gif,jpg等图片直接建立画布(或者称为资源、图片区域)。

 

画布建好之后,就可以在该画布的范围内(也就是说,如果你的画图操作超出了画图的范围,是无法体现在图像中的)进行画图操作了。

建好画布之后,我们做的测试步骤如下:

2.格式栅栏化画布。

通过imageline每隔20px花一条直线,作为识别的参考物。

for($start_x = 0;$start_x <= $canvas_w;$start_x += 20){
	if($start_x == $font_x){
		imageline($im,$start_x,0,$start_x,$width,$mixed);
	}else{
		imageline($im,$start_x,0,$start_x,$width,$red);
	}
}

for($start_y = 0;$start_y <= $canvas_h;$start_y += 20){
	if($start_y == $font_y){
		imageline($im,0,$start_y,$height,$start_y,$mixed);
	}else{
		imageline($im,0,$start_y,$height,$start_y,$red);
	}
}

格式栅栏化后的画布类似于下图:

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值