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 相关文章推荐
一个多文件上传的例子(原创)
Oct 09 PHP
php中处理模拟rewrite 效果
Dec 09 PHP
php 静态变量与自定义常量的使用方法
Jan 26 PHP
利用PHP实现智能文件类型检测的实现代码
Aug 02 PHP
PHP IF ELSE简化/三元一次式的使用
Aug 22 PHP
新浪微博API开发简介之用户授权(PHP基础篇)
Sep 25 PHP
Windows下Apache + PHP SESSION丢失的解决过程全纪录
Apr 07 PHP
thinkphp配置文件路径的实现方法
Aug 30 PHP
PHP使用Redis替代文件存储Session的方法
Feb 15 PHP
PHP PDOStatement::bindColumn讲解
Jan 30 PHP
PHP时间函数使用详解
Mar 21 PHP
php设计模式之工厂方法模式分析【星际争霸游戏案例】
Jan 23 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
暴雪前总裁遗憾:没尽早追赶Dota 取消星际争霸幽灵
2020/03/08 星际争霸
两个开源的Php输出Excel文件类
2010/02/08 PHP
php采集文章中的图片获取替换到本地(实现代码)
2013/07/08 PHP
thinkPHP查询方式小结
2016/01/09 PHP
thinkPHP删除前弹出确认框的简单实现方法
2016/05/16 PHP
php进程间通讯实例分析
2016/07/11 PHP
PHP按一定比例压缩图片的方法
2018/10/12 PHP
JavaScript 基础篇之对象、数组使用介绍(三)
2012/04/07 Javascript
js 实现 input type="file" 文件上传示例代码
2013/08/07 Javascript
js 窗口抖动示例
2013/09/04 Javascript
给文字加上着重号的JS代码
2013/11/12 Javascript
jQuery获取动态生成的元素示例
2014/06/15 Javascript
jquery实现一个简单的表单验证实例
2016/03/30 Javascript
jQuery基于扩展简单实现倒计时功能的方法
2016/05/14 Javascript
js接收并转化Java中的数组对象的方法
2016/08/11 Javascript
angular.js 路由及页面传参示例
2017/02/24 Javascript
微信小程序商城项目之商品属性分类(4)
2017/04/17 Javascript
javascript 缓冲运动框架的实现
2017/09/29 Javascript
vue封装可复用组件confirm,并绑定在vue原型上的示例
2019/10/31 Javascript
js仿京东放大镜效果
2020/08/09 Javascript
Vue仿Bibibili首页的问题
2021/01/21 Vue.js
跟老齐学Python之用while来循环
2014/10/02 Python
在类Unix系统上开始Python3编程入门
2015/08/20 Python
Python 获得13位unix时间戳的方法
2017/10/20 Python
浅谈Python的list中的选取范围
2018/11/12 Python
Python使用Pandas读写Excel实例解析
2019/11/19 Python
详解基于Facecognition+Opencv快速搭建人脸识别及跟踪应用
2021/01/21 Python
如何避免常见的6种HTML5错误用法
2017/11/06 HTML / CSS
现代绅士日常奢侈品:Todd Snyder
2019/12/13 全球购物
PHP如何自定义函数
2016/09/16 面试题
银行实习人员自我鉴定
2013/09/22 职场文书
给朋友的道歉信
2014/01/09 职场文书
护理专业大学生自我推荐信
2014/01/25 职场文书
党的群众路线教育实践活动方案
2014/10/31 职场文书
2015年社区精神文明工作总结
2015/05/26 职场文书
八年级数学教学反思
2016/02/17 职场文书