• PHP 图片进行压缩函数(GD库)


        php 图片进行压缩函数(GD库),需要安装GD库扩展,安装lnmp的是自动开启的。附上代码:

        function yasuo_image($imgsrc,$size_kb,$number=50){
            chmod($imgsrc, 0777);   #给图片赋权限
    
            $imgdst = $imgsrc;   #(新文件地址)覆盖源文件
    
            list($width, $height, $type) = getimagesize($imgsrc);
         
            $new_width = $width;//压缩后的图片宽
            $new_height = $height;//压缩后的图片高
                 
            if($width >= 2000){
              $per = 2000 / $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);
                  imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
                  //90代表的是质量、压缩图片容量大小
                  imagejpeg($image_wp, $imgdst, $number);
                  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, $number);
                imagedestroy($image_wp);
                imagedestroy($image);
                break;
              case 3:
                header('Content-Type:image/png');
                $image_wp = imagecreatetruecolor($new_width, $new_height);
                $image = imagecreatefrompng($imgsrc);
                imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
                //90代表的是质量、压缩图片容量大小
                imagejpeg($image_wp, $imgdst, $number);
                imagedestroy($image_wp);
                imagedestroy($image);
                break;
            }
            #清除文件资源缓存
            clearstatcache(); 
            $filesize = filesize($imgdst);
            $size = $size_kb * 1024;    //压缩后最大为多大
            if($filesize <= $size){
                return $imgdst;
            }else{
                $number = floor($number/2);
                if($number > 1){
                    $imgdst = yasuo_image($imgdst,$size_kb,$number);
                }
                
            }
            return $imgdst;
        }

     文章转自:PHP 图片进行压缩函数(GD库)_PHP函数库-考高分网 (kaotop.com)

  • 相关阅读:
    创建本地yum源
    sed命令总结-基本操作指南
    MySQL5.7配置GTID主从---搭建GTID主从
    MySQL5.7配置GTID主从---GTID介绍
    CentOS7系统RPM方式安装MySQL5.7
    CentOs7安装配置NFS文件服务器
    CentOs7安装配置zabbix3.4(四)----配置报警邮件
    CentOs7安装配置zabbix3.4(三)-配置grafana
    CentOs7安装配置zabbix3.4(二)--安装zabbix-agent
    CentOs7安装配置zabbix3.4(一)--安装zabbix-server
  • 原文地址:https://www.cnblogs.com/68xi/p/15954373.html
Copyright © 2020-2023  润新知