php实现图片局部打马赛克的方法
本文实例讲述了服务器端编程语言(专业超文本预处理器的缩写)实现图片局部打马赛克的方法。分享给大家供大家参考。具体分析如下:
原理:
对图片中选定区域的每一像素,增加若干宽度及高度,生成矩型。而每一像素的矩型重叠在一起,就形成了马赛克效果。本例使用权志龙库的imagecolorat获取像素颜色,使用imagefilledrectangle画矩型。
效果图如下所示:
代码如下:复制代码代码如下:php /**图片局部打马赛克* @ param String $来源原图* @param Stirng $dest生成的图片* @param int $x1起点横坐标* @param int $y1起点纵坐标* @param int $x2终点横坐标* @param int $y2终点纵坐标* @param int $deep深度,数字越大越模糊* @返回布尔*/函数imageMosaics($source,$dest,$x1,$y1,$x2,$y2,$deep){ //判断原图是否存在if(!file _ exists($ source)){ return false;} //获取原图信息list($owidth,$oheight,$ otype)=getimagesize($ source);//判断区域是否超出图片if($ x1 $ owi DTH | | $ X10 | | $ x2 $ owi DTH | | $ x20 | | $ y1 $ oheit | | $ y10 | | $ y2 $ oheit | | $ y20){ return false;} switch($ otype){ case 1: $ source _ img=imagecreatefrom gif($ source);打破;案例2: $ source _ img=imagecreatefrom JPEG($ source);打破;case : $ source _ img=imagecreatefrompng($ source);打破;默认值:返回false} //打马赛克for($ x=$ x1;$ x $ x2 $ x=$ x $ deep){ for($ y=$ y1;$ y $ y2 $ y=$ y $ deep){ $ color=imagecolorat($ source _ img,$x round($deep/2),$ y round($ deep/2));imagefiledrectangle($ source _ img,$x,$y,$x $deep,$y $deep,$ color);} } //生成图片switch($ otype){ case 1: imagegif($ source _ img,$ dest);打破;案例2:图像JPEG($ source _ img,$ dest);打破;案例3: imagepng($source_img,$ dest);打破;} return is_file($dest)?真:假;} $ source=' source . jpg $ dest=' dest . jpg $ flag=image mosaics($ source,$ dest,176,98,273,197,4);echo 'img src='http: ' .$source.”;echo 'img src='http: ' .$dest .'';
完整实例代码点击此处本站下载。
希望本文所述对大家的服务器端编程语言(专业超文本预处理器的缩写)程序设计有所帮助。
版权声明:php实现图片局部打马赛克的方法是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。