问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

php能把图片做成高斯模糊吗

发布网友 发布时间:2022-04-28 05:40

我来回答

2个回答

懂视网 时间:2022-04-28 10:02

php实现图片模糊的方法:首先创建一个PHP示例文件;然后定义一个“image_blur”类;接着创建“gaussian_blur”和“blur”方法;最后通过“$image_blur->gaussian_blur();”方法实现图片模糊。

推荐:《PHP视频教程》

本文实例讲述了PHP实现生成模糊图片的方法。分享给大家供大家参考,具体如下:

<?php
class image_blur{
/**
 * 图片高斯模糊(适用于png/jpg/gif格式)
 * @param $srcImg 原图片
 * @param $savepath 保存路径
 * @param $savename 保存名字
 * @param $positon 模糊程度
 *
 *基于Martijn Frazer代码的扩充, 感谢 Martijn Frazer
 */
 public function gaussian_blur($srcImg,$savepath=null,$savename=null,$blurFactor=3){
 $gdImageResource=$this->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);
 }
 /**
 * Strong 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, 0, 0, 0, 0,
 $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,
 0, 0, 0, 0, $originalWidth, $originalHeight, $nextWidth, $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,null,3);
?>

原图效果:

生成模糊图片后的效果:

热心网友 时间:2022-04-28 07:10

能,不过不建议这么做,利用html的canvas来做比较好,吧压力放到前言去
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
二手房物业费该怎么处理 二手房物业费该如何处理 今年八月份买的房子,物业让交一一年欠的物业费,我应该交么,_百度知 ... 深圳房产评估费怎么收费 1小时3分59秒24如何简写 稿纸上怎么写时间 玉米荷叶茶的功效与作用是什么 玉米荷叶茶的作用和功效禁忌是什么 眼睛上眼皮靠眼角的地方摸上去感觉有个硬疙瘩,而且眼睛很疼肿... 上眼皮突然肿了很痒怎么回事 怎样在php中实现查询结果的输出 PHP+MYSQL取得所有MYSQL查询结果 在PHP中使用SQL语句 怎么取出查询出来的最后一个数据? PHP抓取四六级查询结果 PHP怎么获取mysql迭代查询的数据。 php获取表中所有查询出来的结果数据 php空间如何安装zend 安装Magento时自动跳转到/index.php/install/怎么解决 深圳magento建站教您如何去掉域名后面index.php.html 求一段php里替换图片尺寸的正则表达式 求php中正则表达式从html代码中获取图片路径 请问PHP里怎么用正则表达式给HTML代码里的所有图片加上本身的链接 php如何用正则表达式抓取网页中的图片地址? php 正则表达式怎么把图片URL匹配出来呢? 我想用正则表达式去替换一个图片路径,但要保持图片名称跟替换前一样的,要怎么写怎么写才能达到这个效果 php 如何用正则表达式修改图片地址 求教php正则高手。php正则获取html内容中的所有img路径及名称,替换img的路径 php用正则表达式替换img中src的路径。 php如何使用正则表达式匹配url图片啊 求php中正则表达式过滤或者替换掉特定图片路径的图片 网站中鼠标经过一个商品的图片图片就变得模糊了一点,鼠标移开就正常了,用php怎么实现这个问题 这样的先模糊后清楚的图片PHP怎么处理的? - PHP进阶讨论 php合成图片模糊,为什么,如图所示 - PHP进阶讨论 phpcms v9如何处理轮播图片模糊的问题 PHP网站后台上传图片前台显示不清晰,有什么办法能保证原图 php图片处理 如何用php程序实现去除图片的马赛克效果? PHP生成图片不清晰,请问有没有什么解决方法啊 微信页面用php写的,为什么切的图都模糊了 php 怎么提高上传图片的画质,没有锯齿 后台上传图片是不是PHPCMS都处理了图片变得好模糊啊怎么办 php 缩放图片会失真 用php 写pdf ,输出图片的时候,怎样达到透明效果? thinkphp怎么随机生成字符串 PHP 如何随机生成24位 MD5加密后的字符串 php如何随机生成一段随机长度的文字? php如何让阿拉伯数字转换为中文数字 请问把中文汉字变成含有%、数字、字母的技术是什么? PHP如何将阿拉伯数字转换成中文数字 怎样使用php写计算器?