首页 > 代码库 > PHP图片处理

PHP图片处理

最近项目中要添加一个功能,用户穿戴着一个可以采集位置和自身身体状况的的设备,将这 些数据展示在地图上。看起来是个不错的想法,可是现在没有这个设备啊(坑爹啊),只能模拟数据。而且有了数据也要将多个人展示在地图上,也需要不同的图 标,初步的想法是以用户的编号来识别。做成像下图一样的(这也是做完的效果)。

 

对PHP还有这么一点熟悉,就用PHP来做了,

需要准备一张图片,从网上下的,缩小的合适的尺寸,接下来开始用程序生成了》》

 

1、首先需要得到一个图片资源

$im = imagecreatefrompng(‘your.png‘);

参数就是你准备的图片地址,因为我们的图片是png格式的,png图片背景透明,所以都用它。还有其他的函数,imagecreatefromjpeg、imagecreatefromgif等等

 

2、分配一个颜色,这里是白色,后三个参数是rgb的值。

$color = imagecolorallocate($im, 255, 255, 255);

 

3、在图片上写字。

imagettftext($im, 9, 0, 10, 17, $color, ‘Monaco.ttf‘, ‘10’);

 

参数分别是: 图片资源,字体大小,文字倾斜,文字位置x,文字位置y,颜色,字体文件,文字内容。其中文字位置相对于图片左上角而言。

4、输出

imagepng($im);

如果忽略第二个参数,图片会输出到浏览器。第二个参数是存储位置。

 

这样做完之后发现,哇靠,图片竟然有背景了,我们要的是透明的,网上查找之,还有这么个函数:

imagesavealpha($im, true);

这样就不会有背景了,还是透明的

 

完整代码如下:

$im = imagecreatefrompng(‘your.png‘);imagesavealpha($im, true);$color = imagecolorallocate($im, 255, 255, 255);imagettftext($im, 9, 0, 10, 17, $color, ‘Monaco.ttf‘, ‘10’);imagepng($im);

 

 

如果想得到多张,可以循环一下,然后调整文字位置,输出一下,看我的: