php实现等比例压缩图片


Posted in PHP onJuly 26, 2018

本文实例为大家分享了php实现等比例压缩图片的具体代码,供大家参考,具体内容如下

/**
   * desription 压缩图片
   * @param sting $imgsrc 图片路径
   * @param string $imgdst 压缩后保存路径
   */
  public function compressedImage($imgsrc, $imgdst) {
    list($width, $height, $type) = getimagesize($imgsrc);
    
    $new_width = $width;//压缩后的图片宽
    $new_height = $height;//压缩后的图片高
        
    if($width >= 600){
      $per = 600 / $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, 90);
          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, 90);
        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, 90);
        imagedestroy($image_wp);
        imagedestroy($image);
        break;
    }
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
php性能优化分析工具XDebug 大型网站调试工具
May 22 PHP
PHP教程之PHP中shell脚本的使用方法分享
Feb 23 PHP
关于php循环跳出的问题
Jul 01 PHP
php分页代码学习示例分享
Feb 20 PHP
php接口数据加密、解密、验证签名
Mar 12 PHP
php生成rss类用法实例
Apr 14 PHP
CI映射(加载)数据到view层的方法
Mar 28 PHP
php mysql实现mysql_select_db选择数据库
Dec 30 PHP
Laravel网站打开速度优化的方法汇总
Jul 16 PHP
php微信公众号开发之音乐信息
Oct 20 PHP
PHP微商城开源代码实例
Mar 27 PHP
php-fpm重启导致的程序执行中断问题详解
Apr 29 PHP
PHP输出Excel PHPExcel的方法
Jul 26 #PHP
PHP微信H5支付开发实例
Jul 25 #PHP
php app支付宝回调(异步通知)详解
Jul 25 #PHP
php支付宝APP支付功能
Jul 29 #PHP
PHP多个图片压缩成ZIP的方法
Aug 18 #PHP
PHP上传文件及图片到七牛的方法
Jul 25 #PHP
详解PHP版本兼容之openssl调用参数
Jul 25 #PHP
You might like
echo, print, printf 和 sprintf 区别
2006/12/06 PHP
浅析Mysql 数据回滚错误的解决方法
2013/08/05 PHP
PHP利用APC模块实现文件上传进度条的方法
2015/01/26 PHP
windows下apache搭建php开发环境
2015/08/27 PHP
Yii2.0框架behaviors方法使用实例分析
2019/09/30 PHP
将光标定位于输入框最右侧实现代码
2012/12/04 Javascript
js调用css属性写法
2013/09/21 Javascript
分享十五款 jQuery 社交网络分享插件
2015/05/16 Javascript
jQuery实现非常实用漂亮的select下拉菜单选择效果
2015/11/06 Javascript
详解AngularJS实现表单验证
2015/12/10 Javascript
在React框架中实现一些AngularJS中ng指令的例子
2016/03/06 Javascript
javascript拖拽应用实例(二)
2016/03/25 Javascript
详解JavaScript for循环中发送AJAX请求问题
2020/06/23 Javascript
JS获得多个同name 的input输入框的值的实现方法
2017/01/09 Javascript
jquery.guide.js新版上线操作向导镂空提示jQuery插件(推荐)
2017/05/20 jQuery
详解vue父子组件关于模态框状态的绑定方案
2019/06/05 Javascript
vue + typescript + 极验登录验证的实现方法
2019/06/27 Javascript
python实现DES加密解密方法实例详解
2015/06/30 Python
Python输出带颜色的字符串实例
2017/10/10 Python
Flask框架Flask-Login用法分析
2018/07/23 Python
解决Python3 抓取微信账单信息问题
2019/07/19 Python
python+Selenium自动化测试——输入,点击操作
2020/03/06 Python
python 星号(*)的多种用途
2020/09/21 Python
python中threading和queue库实现多线程编程
2021/02/06 Python
django inspectdb 操作已有数据库数据的使用步骤
2021/02/07 Python
实例讲解CSS3中的box-flex弹性盒属性布局
2016/06/09 HTML / CSS
香港化妆品经销商:我的公主
2016/08/05 全球购物
商务日语专业毕业生求职信
2013/10/26 职场文书
元宵晚会主持词
2014/03/25 职场文书
医护人员继续教育学习心得体会
2016/01/19 职场文书
《青山不老》教学反思
2016/02/22 职场文书
创业计划书之游泳馆
2019/09/16 职场文书
启迪人心的励志语录:脾气永远不要大于本事
2020/01/02 职场文书
Mysql效率优化定位较低sql的两种方式
2021/05/26 MySQL
PHP设计模式(观察者模式)
2021/07/07 PHP
golang用type-switch判断interface的实际存储类型
2022/04/14 Golang