卢家小院

卢家小院
‌恬淡安然‌,悠闲自在 ✨

正二三四五六七八九十冬腊

2026

2025

2024

2023

2022

2021

2020

2019

  • Category
  • Author
  • 正文
  • 『typecho图片上传压缩』

    最近一直在找能用的图片上传压缩的插件,却一直没找到适合自己用的!
    所以干脆自己动手吧,结果研究完才发现几行代码就搞定的事。而且压缩效果不错,压缩完几乎没什么损失,暂时只写了jpg文件,png的需要多几行代码转为jpg后再压缩,否则图片损失很严重,够自己用也就懒得多研究了。也懒得写进插件,毕竟真的很简单,直接写到upload.php文件里就ok的

    具体如下:

    找到系统文件:var/Widget/upload.php
    上传文件处理函数:uploadHandle()
    修改文件处理函数:modifyHandle()

    在对应位置加上以下代码保存

    
    /**
     * 图片压缩 默认大于1M时会进行压缩,可自行修改
     * 支持jpg图片,如果要压缩png,需要添加相关代码先将png转为jpg再压缩
     **/
    if ($file['size'] > 1 * 1024 * 1024 && ($ext == "jpg" || $ext == "jpeg")) {
        list($width, $height, $type, $attr) = getimagesize($path);
        
        $image = imagecreatefromjpeg($path);
        $newimage = imagecreatetruecolor($width,$height);
        imagecopyresampled($newimage, $image,0,0,0,0,$width,$height,$width,$height);      
        imagejpeg($newimage,$path);
    
        imagedestroy($newimage);
        imagedestroy($image);
    
        $file['size'] = filesize($path);
    }
    
    //以下是原文件内的对应位置
    if (!isset($file['size'])) {
        $file['size'] = filesize($path);
    }