昨天在用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);
}
}
格式栅栏化后的画布类似于下图: