本文实例讲述了服务器端编程语言(专业超文本预处理器的缩写)实现生成模糊图片的方法。分享给大家供大家参考,具体如下:
?phpclass image_blur{/** *图片高斯模糊(适用于png/jpg/gif格式)* @param $srcImg原图片* @param $savepath保存路径* @param $savename保存名字* @ param $ positon模糊程度* *基于Martijn Frazer代码的扩充,感谢Marti jn Frazer */公共函数Gaussian _ blur($ srcImg,$savepath=null,$savename=null,$ blur factor=3){ $ gdImageResource=$ this-image _ create _ from _ ext($ srcImg);$ srcImgObj=$ this-blur($ gdImageResource,$ blur factor);$ temp=路径信息($ SRCIMg);$ name=$ temp[' basename '];$ path=$ temp[' dirname '];$ exte=$ temp[' extension '];$savename=$savename?$ save name : $ name $ save path=$ save path?$ save path : $ path $ save file=$ save path .'/'.$ save name $ src info=@ getimagesize($ SRCIMg);switch($ src info[2]){ case 1: imagegif($ srcImgObj,$ save file);打破;case 2: imagejpeg($srcImgObj,$ save file);打破;case : image png($ srcImgObj,$ save file);打破;' default: return '保存失败;//保存失败}返回$ savefileimage destroy($ srcImgObj);} /** *强模糊* * @param $gdImageResource图片资源* @param $blurFactor可选择的模糊程度* 可选择的模糊程度0使用3默认超过5时极其模糊* @返回权志龙图像图片资源类型* @作者马丁弗雷泽,想法基于http://stackoverflow.com/a/20264482 *私有函数blur($gdImageResource,$blurFactor=3) { //blurFactor必须是整数$模糊因子=圆形($模糊因子);$ originalWidth=imagesx($ gdImageResource);$ original h8=imagesy($ gdImageResource);$ smallestWidth=ceil($原始宽度* pow(0.5,$模糊因子));$小三=上限($原装h8 *动力(0.5,$模糊因子));//对于第一次运行,前面的图像是原始输入$ pre image=$ gdImageResource $ prev width=$ original width $ prev height=$ original h8//向下扩展,逐渐向上扩展,对于($i=0)一路模糊;$ i $ blurFactor$i=1) { //确定下一个图像的尺寸$ next width=$ smallestWidth * pow(2,$ I);$ next height=$ smallesthethree * power(2,$ I);//将上一个图像调整到下一个大小$ nextImage=imagecreatetrue color($ nextWidth,$ nextHeight);imagecopyresized($nextImage,$prevImage,0,0,0,$nextWidth,$nextHeight,$ prevWidth,$ previheight);//应用模糊滤镜imagefilter($nextImage,IMG _ FILTER _ GAUSSIAN _ BLUR);//现在新图像成为下一步的前一个图像$ prevImage=$ next image $ prev width=$ next width $ prev height=$ next height }//缩放回原始大小,再模糊一次imagecopy已调整大小($ gdImageResource,$nextImage,0,0,0,$originalWidth,$ original h8,$nextWidth,$ next height);imagefilter($gdImageResource,IMG _ FILTER _ GAUSSIAN _ BLUR);//清理图像破坏($ pre image);//返回结果返回$ gdImageResource}私有函数image _ create _ from _ ext($ img文件){ $ info=getimagesize($ img文件);$ im=null switch($ info[2]){ case 1: $ im=imagecreatefrom gif($ imgfile);打破;case 2: $ im=imagecreatefrom JPEG($ img文件);打破;case : $ im=imagecreatefrompng($ imgfile);打破;}返回$ im } } $ image _ blur=new image _ blur();$image_blur-gaussian_blur ' ./1.jpg ',null,null,3);原图效果:
生成模糊图片后的效果:
更多关于服务器端编程语言(专业超文本预处理器的缩写)相关内容感兴趣的读者可查看本站专题: 《PHP图形与图片操作技巧汇总》 、 《php文件操作总结》 、 《PHP数组(Array)操作技巧大全》 、 《PHP基本语法入门教程》 、 《PHP运算与运算符用法总结》 、 《php面向对象程序设计入门教程》 、 《PHP网络编程技巧总结》 、 《php字符串(string)用法总结》 、 《php+mysql数据库操作入门教程》 及《php常见数据库操作技巧汇总》
希望本文所述对大家服务器端编程语言(专业超文本预处理器的缩写)程序设计有所帮助。