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 网络开发详解之远程文件包含漏洞
Apr 25 PHP
php 上传文件类型判断函数(避免上传漏洞 )
Jun 08 PHP
zend api扩展的php对象的autoload工具
Apr 18 PHP
ubuntu10.04配置 nginx+php-fpm模式的详解
Jun 03 PHP
symfony表单与页面实现技巧
Jan 26 PHP
PHP设计模式之简单投诉页面实例
Feb 24 PHP
PHP中empty,isset,is_null用法和区别
Feb 19 PHP
PHP递归删除多维数组中的某个值
Apr 17 PHP
php删除数组指定元素实现代码
May 03 PHP
PHP中的访问修饰符简单比较
Feb 02 PHP
Laravel框架实现文件上传的方法分析
Sep 29 PHP
PHP如何通过date() 函数格式化显示时间
Nov 13 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设计模式之观察者模式的应用详解
2013/05/21 PHP
探讨fckeditor在Php中的配置详解
2013/06/08 PHP
PHP截取指定图片大小的方法
2014/12/10 PHP
CI框架常用函数封装实例
2016/11/21 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
一个简单的JavaScript 日期计算算法
2009/09/11 Javascript
flexigrid 类似ext grid的JS表格代码
2010/07/17 Javascript
jquery实现带单选按钮的表格行选中时高亮显示
2013/08/01 Javascript
用C/C++来实现 Node.js 的模块(一)
2014/09/24 Javascript
Javascript学习笔记之函数篇(四):arguments 对象
2014/11/23 Javascript
jquery实现可自动判断位置的弹出层效果代码
2015/10/12 Javascript
Sublime Text 3常用插件及安装方法
2015/12/16 Javascript
java中String类型变量的赋值问题介绍
2016/03/23 Javascript
基于JavaScript实现点击页面任何位置返回
2016/08/31 Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
2017/06/13 Javascript
JS解析url查询参数的简单代码
2017/08/06 Javascript
(模仿京东用户注册)用JQuery实现简单表单验证,初学者必看
2018/01/08 jQuery
vue实现数字滚动效果
2020/06/29 Javascript
[02:56]DOTA2英雄基础教程 巨魔战将
2013/12/10 DOTA
Python 调用DLL操作抄表机
2009/01/12 Python
python获取糗百图片代码实例
2013/12/18 Python
Python删除空文件和空文件夹的方法
2015/07/14 Python
Django学习笔记之Class-Based-View
2017/02/15 Python
Python实现读取TXT文件数据并存进内置数据库SQLite3的方法
2017/08/08 Python
简单了解Python中的几种函数
2017/11/03 Python
Python实现PS图像抽象画风效果的方法
2018/01/23 Python
Python面向对象之继承和多态用法分析
2019/06/08 Python
Django3.0 异步通信初体验(小结)
2019/12/04 Python
Python 实现一个计时器
2020/07/28 Python
Python函数递归调用实现原理实例解析
2020/08/11 Python
解决CSS3 transition-delay 属性默认值0不带单位失效的问题
2020/10/29 HTML / CSS
美国最受欢迎的童装品牌之一:The Children’s Place
2016/07/23 全球购物
装修协议书范本
2014/04/21 职场文书
垃圾分类的活动方案
2014/08/15 职场文书
乡镇群众路线专项整治方案
2014/11/03 职场文书
2015年前台个人工作总结
2015/04/03 职场文书