GD库
Posted Irving_yx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GD库相关的知识,希望对你有一定的参考价值。
php图片处理
1.图片背景管理
使用 imagecreate()和 imagecreatetruecolor()函数可以创建画布资源。但如果已经拥有图片进行处理,只需要将这个图片作为画布资源即可,也就是我们所说的创建图片背景。
imagecreatefromjpeg($path)
imagecreatefrompng($path)
imagecreatefromgif($path)
获取图片类型宽度高度等 getimagesize($path)
2.图片放缩
imagecopyresampled(dst_img,src_img,dst_x,dst_y,src_x,src_y,dst_w,dst_h,src_w,src_h)
自定义图像放缩函数:
1 function thumb($filename,$width=200,$height=200){ 2 //获取原图像的宽和高 3 list($width_orig,$height_orig)=getimagesize($filename); 4 5 //换算出比例宽高 6 if($width && ($width_orig<$height_orig)){ 7 $width=($height/$height_orig)*$width_orig; 8 }else{ 9 $height=($width/$width_orig)*$height_orig; 10 } 11 12 $im=imagecreatetruecolor($width,$height); 13 $image=imagecreatefromjpeg($filename);//放缩jpeg格式 14 imagecopyresampled($im,$image,0,0,0,0,$width,$height,$width_orig,$height_orig); 15 16 imagejpeg($im,$filename,100); 17 18 imagedestroy($im); 19 imagedestroy($image); 20 }
3.图片裁剪
自定义裁剪函数:
1 function cut($filename,$x,$y,$width,$height){ 2 //创建背景资源 3 $back=imagecreatefromjpeg($filename); 4 //创建保存裁剪后资源 5 $im=imagecreatetruecolor($width,$height); 6 //裁剪 7 imagecopyresampled($im,$back,0,0,$x,$y,$width,$height,$width,$height); 8 //覆盖原图,如果不想覆盖可加前缀 9 imagejpeg($im,$filename); 10 11 imagedestroy($im); 12 imagedestroy($back);
4.添加水印
自定义水印函数:
1 function watermark($filename,$water){ 2 //获取背景图的宽高 3 list($b_w,$b_h)=getimagesize($filename); 4 //获取水印的宽高 5 list($w_w,$w_h)=getimagesize($water); 6 //水印在背景图的随机位置 7 $posx=rand(0,($b_w-$w_w)); 8 $posy=rand(0,($b_h-$w_h)); 9 //创建背景和水印资源 10 $back=imagecreatefromjpeg($filename); 11 $water=imagecreatefrompng($water); 12 //添加水印 13 imagecopy($back,$water,$posx,$posy,0,0,$w_w,$w_h); 14 //保存水印图 15 imagejpeg($back,$filename); 16 //释放资源 17 imagedestroy($water); 18 imagedestroy($back); 19 }
5.图片旋转
自定义旋转函数:
1 function rotate($filename,$degrees){ 2 //创建图像资源 3 $im=imagecreatefromjpeg($filename); 4 //按指定角度旋转 5 $rotate=imagerotate($im,$degrees,0); 6 //保存旋转后图 7 imagejpeg($im,$filename); 8 }
以上是关于GD库的主要内容,如果未能解决你的问题,请参考以下文章