2018.9.27实现图片上添加文字

//1,配置图片路径

$src="../img/1.jpg";//图片地址

//2,获取图片信息

$info=getimagesize($src);//获取图片的大小,类型,宽和高并以数组的形式给info

//3,通过编号获取图片类型

$type=image_type_to_extension($info[2],false);//$info[2]是获取这个图片数组里的图片类型具体参照image_type_to_extension这个函数的用法

//4,在内存中创建一毛一样的图片

$fun="imagecreatefrom".$type;//这个函数整体是imagecreatefromjpeg(),后面type是你原来图片的类型

//5,图片复制给内存

$image=$fun($src);//对应imagecreatefromjpeg(),后面说具体用法.

/*以上就是对图片的创建就基本完成了,下面是在图片上添加文字*/

//1,设置图片上文字的路径

$font="../wenzhi/simsun.tff";//这个是网上下载的宋体文字,下载完放在你想要放的目录下,如果没有文字,图片是不会添加任何东西的

//2,添加文字的内容

$name="王大锤";

//3,设置文字的颜色

$color=imagecolorallocatealpha($image, 50, 50, 50, 50);//这个函数下面会说明

//4,文字的写入

imagettftext($image, 20, 0, 238, 295, $color, $font, $name);//8个条件缺一不可,下面具体说明

//5,浏览器输出

header("Content-type:".$info['mime']);$fun = "image".$type;$fun($image);

//6,保存图片

$fun($image,'222.'.$type);

//7,销毁图片

imagedestroy($image);

//通过上述方法实测可以在图片上添加文字.为了方便理解,加了很多注释,不喜欢注释的我这加了份无注释版本.

//无注释版本

$info = getimagesize("demo/1.jpg");

$type = image_type_to_extension($info[2],false);

$fun = "imagecreatefrom".$type;

$image = $fun($src); 

$font = "simsun.ttf";

$name = "张三";

$color = imagecolorallocatealpha($image, 50, 50, 50, 50);

imagettftext($image, 20, 0, 238, 295, $color, $font, $name);

header("Content-type:".$info['mime']);$fun = "image".$type;$fun($image);

$fun($image,'222.'.$type);

imagedestroy($image);

//下面是各个函数的解析,因为之前没有接触过图片处理这一部分,工作需要,好在做出来了.不废话了,说明下函数

获取图片信息:getimagesize($src) 

      栗子:$a=getimagesize($src) ; 

              输出下a发现是一个数组,这个是把图片以数组形式存储赋值给$a,其中$a[2]是图片类型,一般用的就只有这个


获取图片类型image_type_to_extension($a[2],flase)

        获取图片的类型

        栗子:$b=image_type_to_extension($a[2],flase) 

        假如原图片是jpg类型 这里返回的就是jepg


载入图片:imagecreatefromjpeg()

        翻了翻手册:imagecreatefromjpeg — Create a new image from file or URL

        函数用于从文件或 URL 载入一幅图像,成功返回图像资源,失败则返回一个空字符串

        栗子:$im = imagecreatefromjpeg("images/flower_1.jpg");


在图片上添加文字:imagettftext()这个函数比较麻烦

        imagettftext (  $image ,$size ,  $angle , $x ,  $y , $color , $fontfile , $text )

        具体解释:$image 指的在内存上的图片,经过上面第五步后才能用上

            $size (๑•̀ㅂ•́)و✧ 文字大小

            $angle 简单理解就是文本转动,不转写0就行

            $x $y x轴 y轴 具体到像素,你想要文字放在什么位置,可以用尺子工具量,稍微麻烦点

            $color 文本的颜色

            $fontfile 文本的样式 就是啥文字宋体,楷体 (~ ̄▽ ̄)~

            $text 你想加的文字

             ok,解释完毕 \(^o^)/~

销毁图片imagedestroy()

            不是指的真正的销毁.....类似清空缓存

            翻翻手册:imagedestroy() 释放与 image 关联的内存。

 

 

猜你喜欢

转载自www.cnblogs.com/xinshouhouzhi/p/9711438.html
今日推荐