kindeditor编辑器上传图片超宽自动压缩-PHP代码

kindeditor是一款开源编辑器,在web网站编辑领域使用非常多,自带的编辑器代码只能限制大小,不能限制图片宽高,有时候图片太宽了非常难看,这篇文章介绍kindeditor编辑器上传图片超宽自动压缩,等比压缩,直接减小图片大小,节省空间,提高图片加载速度。

找到下面文件并打开,kindeditor\php\upload_json.php

找到这一行代码:
$file_url = $save_url . $new_file_name;

后面加上下面代码:

 compressedImage($_SERVER['DOCUMENT_ROOT'].$file_url,800);//压缩图片

上面这个代码,还可以设置压缩质量,具体功能可以查看下面函数

然后再文件底部,加入下面2个函数

/**
     * desription 等比压缩图片 作者wfuyu.com
     * @param sting $imgsrc 图片路径
     * @param string $imgdst 压缩后保存路径,如果为空,则覆盖
	 ,$zhiliang=90  图片质量
	 $wd=如果超过这个尺寸就等比压缩
     */
     function compressedImage($imgsrc,$wd=600,$zhiliang=90,$imgdst=''){
		 if($imgdst==''){$imgdst=$imgsrc;}
        list($width, $height, $type) = getimagesize($imgsrc);
        $new_width = $width;//压缩后的图片宽
        $new_height = $height;//压缩后的图片高
 
        if($width >= $wd){
            $per = $wd / $width;//计算比例
            $new_width = $width * $per;
            $new_height = $height * $per;
        }

        switch ($type) {
            case 1:
                $giftype = check_gifcartoon($imgsrc);
                if ($giftype) {
                  //  header('Content-Type:image/gif');
                    $image_wp = imagecreatetruecolor($new_width, $new_height);
                    $image = imagecreatefromgif($imgsrc);
					$bg =imagecolorallocate($image_wp, 255, 255, 255);
				    imagefill($image_wp, 0, 0, $bg);
                    imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
                    //90代表的是质量、压缩图片容量大小
                    imagejpeg($image_wp, $imgdst, $zhiliang);
                    imagedestroy($image_wp);
                    imagedestroy($image);
                }
                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);
			
                //90代表的是质量、压缩图片容量大小
                imagejpeg($image_wp, $imgdst, $zhiliang);
                imagedestroy($image_wp);
                imagedestroy($image);
                break;
            case 3:
                //header('Content-Type:image/png');
				$image_wp = imagecreatetruecolor($new_width, $new_height);
                $image = imagecreatefrompng($imgsrc);
				$bg =imagecolorallocate($image_wp, 255, 255, 255);
				imagefill($image_wp, 0, 0, $bg);
                imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
                //90代表的是质量、压缩图片容量大小
                imagejpeg($image_wp, $imgdst, $zhiliang);
                imagedestroy($image_wp);
                imagedestroy($image);
                break;
				  
		
        }
    }
	
function check_gifcartoon($image_file){ $fp = fopen($image_file,'rb');$image_head = fread($fp,1024);fclose($fp);return preg_match("/".chr(0x21).chr(0xff).chr(0x0b).'NETSCAPE2.0'."/",$image_head)?false:true;}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

第8代码农师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值