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

phpcms v9如何处理轮播图片模糊的问题

发布网友 发布时间:2022-04-06 04:43

我来回答

2个回答

懂视网 时间:2022-04-06 09:04

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-06 06:12

如果你是自动获取的缩略图肯定效果不是很好的,比如前台调用的是{thumb($r[thumb],90,125)},如果后台你发布的缩略图是先处理为宽90 高125的,前台调用就可以不加那个90,125,变为{thumb($r[thumb])}就会少压缩一次,质量会好的。追问

意思就是说我要好大的图片   后台上传的图片先处理好大的就可以么 , 我这样改 的但还是模糊

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
二手房物业费该怎么处理 二手房物业费该如何处理 今年八月份买的房子,物业让交一一年欠的物业费,我应该交么,_百度知 ... 深圳房产评估费怎么收费 1小时3分59秒24如何简写 稿纸上怎么写时间 玉米荷叶茶的功效与作用是什么 玉米荷叶茶的作用和功效禁忌是什么 眼睛上眼皮靠眼角的地方摸上去感觉有个硬疙瘩,而且眼睛很疼肿... 上眼皮突然肿了很痒怎么回事 php合成图片模糊,为什么,如图所示 - PHP进阶讨论 这样的先模糊后清楚的图片PHP怎么处理的? - PHP进阶讨论 网站中鼠标经过一个商品的图片图片就变得模糊了一点,鼠标移开就正常了,用php怎么实现这个问题 php能把图片做成高斯模糊吗 怎样在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图片处理 如何用php程序实现去除图片的马赛克效果? PHP生成图片不清晰,请问有没有什么解决方法啊 微信页面用php写的,为什么切的图都模糊了 php 怎么提高上传图片的画质,没有锯齿 后台上传图片是不是PHPCMS都处理了图片变得好模糊啊怎么办 php 缩放图片会失真 用php 写pdf ,输出图片的时候,怎样达到透明效果? thinkphp怎么随机生成字符串 PHP 如何随机生成24位 MD5加密后的字符串 php如何随机生成一段随机长度的文字? php如何让阿拉伯数字转换为中文数字 请问把中文汉字变成含有%、数字、字母的技术是什么? PHP如何将阿拉伯数字转换成中文数字 怎样使用php写计算器? 求解答php简单计算器代码 php写一个简单的网页加法计算器 求助 如何用PHP做的计算器吗 各位童鞋,请问PHP中做简单计算器