结果分析迅睿CMS代码发现压缩图片的方法保留了最高质量造成图片文件大小变大的原因,我们只需要找到文件dayrui/Fcms/Library/Image.php中的reduce方法替换压缩质量的值即可,最终实现代码参考如下:
public function reduce($imgsrc, $cw) { list($width, $height, $type) = getimagesize($imgsrc); list($width, $height) = $this->_fix_orientation($imgsrc, $width, $height); if ($type != 18 && strpos($imgsrc, '.webp')) { $type = 18; } if ($width > $cw) { $per = $cw / $width;//计算比例 $new_width = floor($width * $per); //压缩后的图片宽 $new_height = floor($height * $per); //压缩后的图片高 switch ($type) { case 1: // gif break; case 2: //header('Content-Type:image/jpeg'); $image_wp = imagecreatetruecolor($new_width, $new_height); $image = imagecreatefromjpeg($imgsrc); imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); //75代表的是质量、压缩图片容量大小 imagejpeg($image_wp, $imgsrc, 75); imagedestroy($image_wp); imagedestroy($image); break; case 3: header('Content-Type:image/png'); $image_wp = imagecreatetruecolor($new_width, $new_height); $image = imagecreatefrompng($imgsrc); //2.上色 $color=imagecolorallocate($image_wp,255,255,255); //3.设置透明 imagecolortransparent($image_wp,$color); imagefill($image_wp,0,0,$color); imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); //90代表的是质量、压缩图片容量大小 // imagejpeg($image_wp, $imgsrc, 75); imagepng($image_wp, $imgsrc, 6); imagedestroy($image_wp); imagedestroy($image); break; case 18: header('Content-Type:image/webp'); $image_wp = imagecreatetruecolor($new_width, $new_height); if (!function_exists('imagecreatefromwebp')) { $image = imagecreatefromjpeg($imgsrc); } else { $image = imagecreatefromwebp($imgsrc); } imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); //80代表的是质量、压缩图片容量大小 imagewebp($image_wp, $imgsrc, 80); imagedestroy($image_wp); imagedestroy($image); break; } } else { CI_DEBUG && log_message('debug', '系统要求宽度>'.$cw.'px才进行压缩处理,当前图片宽度='.$width.',不满足压缩条件:'.$imgsrc); } return; }
安装后的安全设置参考(个人建议新增public文件夹再把整个网站程序放入public文件夹下,再把如下的要求比如把cache,dayrui,template移动到和public文件夹在同一级目录下)最终实现的效果对应index.php(刚才移入public文件夹下的)代码参考如下:
PHP实现图片压缩函数
登录数据库找到dr_member表【dr_是数据表前缀】修改pwd字段为a11d06fba2a3b4ad165893794911355csalt字段为f61d694746那么修改后的登录密码就是:admin
利用PHP实现图片压缩和等比例缩小的函数
迅睿CMS开启https访问后,前端无法展示,来回多次重定向经分析,用的是西部数据的IIS虚拟机,根本就没办法获取https相关环境变量,所以通过后台开启的协议与环境变量获取的协议不相符,所以就不断的...
迅睿CMS框架部署在IIS环境下在开启伪静态中文搜索乱码问题,解决方法就是对get过来的关键字进行转码,具体找到文件dayrui\Fcms\Library\Security.php找到 return ...