加入收藏 | 设为首页 | 会员中心 | 我要投稿 南平站长网 (https://www.0599zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP实现生成模糊图片的方法示例

发布时间:2021-03-30 10:39:54 所属栏目:PHP教程 来源:网络整理
导读:本篇章节讲解PHP实现生成模糊图片的方法。分享给大家供大家参考,具体如下: image_create_from_ext($srcImg); $srcImgObj=$this->blur($gdImageResource,$blurFactor); $temp = pathinfo($srcImg); $name = $temp['basename']; $path = $temp['dirname'];

本篇章节讲解PHP实现生成模糊图片的方法。分享给大家供大家参考,具体如下:

image_create_from_ext($srcImg); $srcImgObj=$this->blur($gdImageResource,$blurFactor); $temp = pathinfo($srcImg); $name = $temp['basename']; $path = $temp['dirname']; $exte = $temp['extension']; $savename = $savename ? $savename : $name; $savepath = $savepath ? $savepath : $path; $savefile = $savepath .'/'. $savename; $srcinfo = @getimagesize($srcImg); switch ($srcinfo[2]) { case 1: imagegif($srcImgObj,$savefile); break; case 2: imagejpeg($srcImgObj,$savefile); break; case 3: imagepng($srcImgObj,$savefile); break; default: return '保存失败'; //保存失败 } return $savefile; imagedestroy($srcImgObj); } /** * h3 Blur * * @param $gdImageResource 图片资源 * @param $blurFactor 可选择的模糊程度 * 可选择的模糊程度 0使用 3默认 超过5时 极其模糊 * @return GD image 图片资源类型 * @author Martijn Frazer,idea based on http://stackoverflow.com/a/20264482 */ private function blur($gdImageResource,$blurFactor = 3) { // blurFactor has to be an integer $blurFactor = round($blurFactor); $originalWidth = imagesx($gdImageResource); $originalHeight = imagesy($gdImageResource); $smallestWidth = ceil($originalWidth * pow(0.5,$blurFactor)); $smallestHeight = ceil($originalHeight * pow(0.5,$blurFactor)); // for the first run,the previous image is the original input $prevImage = $gdImageResource; $prevWidth = $originalWidth; $prevHeight = $originalHeight; // scale way down and gradually scale back up,blurring all the way for($i = 0; $i < $blurFactor; $i += 1) { // determine dimensions of next image $nextWidth = $smallestWidth * pow(2,$i); $nextHeight = $smallestHeight * pow(2,$i); // resize previous image to next size $nextImage = imagecreatetruecolor($nextWidth,$nextHeight); imagecopyresized($nextImage,$prevImage,$nextWidth,$nextHeight,$prevWidth,$prevHeight); // apply blur filter imagefilter($nextImage,IMG_FILTER_GAUSSIAN_BLUR); // now the new image becomes the previous image for the next step $prevImage = $nextImage; $prevWidth = $nextWidth; $prevHeight = $nextHeight; } // scale back to original size and blur one more time imagecopyresized($gdImageResource,$nextImage,$originalWidth,$originalHeight,$nextHeight); imagefilter($gdImageResource,IMG_FILTER_GAUSSIAN_BLUR); // clean up imagedestroy($prevImage); // return result return $gdImageResource; } private function image_create_from_ext($imgfile) { $info = getimagesize($imgfile); $im = null; switch ($info[2]) { case 1: $im=imagecreatefromgif($imgfile); break; case 2: $im=imagecreatefromjpeg($imgfile); break; case 3: $im=imagecreatefrompng($imgfile); break; } return $im; } } $image_blur = new image_blur(); $image_blur->gaussian_blur("./1.jpg",null,3); ?>

原图效果:

PHP实现生成模糊图片的方法示例

生成模糊图片后的效果:

PHP实现生成模糊图片的方法示例

更多关于PHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》、《》、《》、《》及《》

希望本文所述对大家PHP程序设计有所帮助。

(编辑:南平站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读