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 相关文章推荐
apache+mysql+php+ssl服务器之完全安装攻略
Sep 05 PHP
实用函数7
Nov 08 PHP
php Smarty 字符比较代码
Feb 27 PHP
PHP递归返回值时出现的问题解决办法
Feb 19 PHP
浅析使用Turck-mmcache编译来加速、优化PHP代码
Jun 20 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(三)
Jun 23 PHP
Laravel 5框架学习之模型、控制器、视图基础流程
Apr 08 PHP
PHP+MySQL统计该库中每个表的记录数并按递减顺序排列的方法
Feb 15 PHP
PHP读书笔记整理_结构语句详解
Jul 01 PHP
基于 Swoole 的微信扫码登录功能实现代码
Jan 15 PHP
Laravel 前端资源配置教程
Oct 18 PHP
Laravel框架集合用法实例浅析
May 14 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下判断数组中是否存在相同的值array_unique
2008/03/25 PHP
php 购物车的例子
2009/05/04 PHP
php格式化金额函数分享
2015/02/02 PHP
php实现在服务器端调整图片大小的方法
2015/06/16 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
2017/12/26 PHP
对字符串进行HTML编码和解码的JavaScript函数
2010/02/01 Javascript
javascript中的数字与字符串相加实例分析
2011/08/14 Javascript
ejs v9 javascript模板系统
2012/03/21 Javascript
js+html5实现canvas绘制圆形图案的方法
2015/06/05 Javascript
swtich/if...else的替代语句
2015/08/16 Javascript
使用OpenLayers3 添加地图鼠标右键菜单
2015/12/29 Javascript
javascript实现简单的全选和反选功能
2016/01/05 Javascript
深入解析JavaScript中的arguments对象
2016/06/12 Javascript
JavaScript实现经纬度转换成地址功能
2017/03/28 Javascript
详解AngularJS用Interceptors来统一处理HTTP请求和响应
2017/06/08 Javascript
Vue-router结合transition实现app前进后退动画切换效果的实例
2017/10/11 Javascript
基于node下的http小爬虫的示例代码
2018/01/11 Javascript
Element中Slider滑块的具体使用
2020/07/29 Javascript
JavaScript中ES6规范中let和const的用法和区别
2020/08/06 Javascript
使用Python写个小监控
2016/01/27 Python
Python实现使用卷积提取图片轮廓功能示例
2018/05/12 Python
Python对CSV、Excel、txt、dat文件的处理
2018/09/18 Python
Python进阶之@property动态属性的实现
2019/04/01 Python
python 实现在一张图中绘制一个小的子图方法
2019/07/07 Python
python实现从wind导入数据
2019/12/03 Python
解决django xadmin主题不显示和只显示bootstrap2的问题
2020/03/30 Python
pycharm 对代码做静态检查操作
2020/06/09 Python
python调用百度AI接口实现人流量统计
2021/02/03 Python
美国酒店控股公司:Choice Hotels
2018/06/15 全球购物
世界汽车零件:World Car Parts
2019/09/04 全球购物
Linux管理员面试经常问道的相关命令
2013/04/29 面试题
最美家庭活动方案
2014/08/31 职场文书
工伤死亡理赔协议书
2014/10/20 职场文书
学校清洁工岗位职责
2015/04/15 职场文书
2015年基层党建工作汇报材料
2015/06/25 职场文书
治庸问责工作总结
2015/08/11 职场文书