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 中执行系统外部命令
Oct 09 PHP
php中神奇的fastcgi_finish_request
May 02 PHP
php防止伪造的数据从URL提交方法
Jun 27 PHP
php之readdir函数用法实例
Nov 13 PHP
php遍历删除整个目录及文件的方法
Mar 13 PHP
php实现基于pdo的事务处理方法示例
Jul 21 PHP
php简单中奖算法(实例)
Aug 15 PHP
php无限级评论嵌套实现代码
Apr 18 PHP
safari下载文件自动加了html后缀问题
Nov 09 PHP
PHP 并发场景的几种解决方案
Jun 14 PHP
laravel多条件查询方法(and,or嵌套查询)
Oct 09 PHP
PHP强制转化的形式整理
May 22 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
PHP session有效期问题
2009/04/26 PHP
Smarty中调用FCKeditor的方法
2014/10/27 PHP
最新28个很棒的jQuery 教程
2011/05/28 Javascript
jquery ui dialog实现弹窗特效的思路及代码
2013/08/03 Javascript
jquery easyui 结合jsp简单展现table数据示例
2014/04/18 Javascript
js表头排序实现方法
2015/01/16 Javascript
javascript实现图片自动和可控的轮播切换特效
2015/04/13 Javascript
jquery实现清新实用的网页菜单效果
2015/08/28 Javascript
js倒计时简单实现方法
2015/12/17 Javascript
js+html5操作sqlite数据库的方法
2016/02/02 Javascript
javascript每日必学之运算符
2016/02/16 Javascript
jquery显示隐藏元素的实现代码
2016/05/19 Javascript
js正则表达式replace替换变量方法
2016/05/21 Javascript
javascript事件处理模型实例说明
2016/05/31 Javascript
JavaScript用二分法查找数据的实例代码
2017/06/17 Javascript
vue-router单页面路由
2017/06/17 Javascript
JavaScript中常见的八个陷阱总结
2017/06/28 Javascript
Javascript ES6中对象类型Sets的介绍与使用详解
2017/07/17 Javascript
jQuery实现动态显示select下拉列表数据的方法
2018/02/05 jQuery
vue+express 构建后台管理系统的示例代码
2018/07/19 Javascript
jquery.pagination.js分页使用教程
2018/10/23 jQuery
微信小程序开发问题之wx.previewImage
2018/12/25 Javascript
python基础教程之popen函数操作其它程序的输入和输出示例
2014/02/10 Python
Python常用列表数据结构小结
2014/08/06 Python
python3制作捧腹网段子页爬虫
2017/02/12 Python
Python urls.py的三种配置写法实例详解
2017/04/28 Python
如何实现删除numpy.array中的行或列
2018/05/08 Python
使用memory_profiler监测python代码运行时内存消耗方法
2018/12/03 Python
扩展Django admin的list_filter()可使用范围方法
2019/08/21 Python
python matplotlib 画dataframe的时间序列图实例
2019/11/20 Python
canvas实现滑动验证的实现示例
2020/08/11 HTML / CSS
大学生职业生涯规划范文
2014/01/22 职场文书
金融学专科生自我鉴定
2014/02/21 职场文书
银行党员批评与自我批评
2014/10/15 职场文书
Python基础之操作MySQL数据库
2021/05/06 Python
搭建Yolov5服务器
2022/04/30 Servers