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 相关文章推荐
ThinkPHP调用common/common.php函数提示错误function undefined的解决方法
Aug 25 PHP
PHP的命令行命令使用指南
Aug 18 PHP
又拍云异步上传实例教程详解
Apr 19 PHP
php图片添加水印例子
Jul 20 PHP
CI框架(ajax分页,全选,反选,不选,批量删除)完整代码详解
Nov 01 PHP
php实现微信扫码支付
Mar 26 PHP
PHP memcache在微信公众平台的应用方法示例
Sep 13 PHP
PHP xpath()函数讲解
Feb 11 PHP
Laravel 对某一列进行筛选然后求和sum()的例子
Oct 10 PHP
laravel 使用事件系统统计浏览量的实现
Oct 16 PHP
TP5框架请求响应参数实例分析
Oct 17 PHP
PHP生成随机密码4种方法及性能对比
Dec 11 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 curl_setopt 函数的相关应用及介绍
2013/06/17 PHP
使用array mutisort 实现按某字段对数据排序
2013/06/18 PHP
PHP各种异常和错误的拦截方法及发生致命错误时进行报警
2016/01/19 PHP
Javascript Jquery 遍历Json的实现代码
2010/03/31 Javascript
JavaScript实现点击按钮后变灰避免多次重复提交
2013/07/15 Javascript
jquery批量控制form禁用的代码
2013/08/06 Javascript
JQuery加载图片自适应固定大小的DIV
2013/09/12 Javascript
限制上传文件大小和格式的jQuery插件实例
2015/01/24 Javascript
全面解析jQuery $(document).ready()和JavaScript onload事件
2016/06/08 Javascript
深入理解js generator数据类型
2016/08/16 Javascript
用户管理的设计_jquery的ajax实现二级联动效果
2017/07/13 jQuery
原生JavaScript来实现对dom元素class的操作方法(推荐)
2017/08/16 Javascript
解决vue.js this.$router.push无效的问题
2018/09/03 Javascript
Vue使用localStorage存储数据的方法
2019/05/27 Javascript
JavaScript实现动态生成表格
2020/08/02 Javascript
8个非常实用的Vue自定义指令
2020/12/15 Vue.js
[27:53]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS iG
2014/05/26 DOTA
[49:20]VG vs TNC Supermajor小组赛B组败者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
[01:31:02]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第一场
2019/08/22 DOTA
python实现挑选出来100以内的质数
2015/03/24 Python
实例讲解Python中SocketServer模块处理网络请求的用法
2016/06/28 Python
Python学习笔记之open()函数打开文件路径报错问题
2018/04/28 Python
PyQt5固定窗口大小的方法
2019/06/18 Python
selenium中get_cookies()和add_cookie()的用法详解
2020/01/06 Python
在Tensorflow中实现梯度下降法更新参数值
2020/01/23 Python
Python命名空间namespace及作用域原理解析
2020/06/05 Python
python 贪心算法的实现
2020/09/18 Python
Python爬虫制作翻译程序的示例代码
2021/02/22 Python
英国旅游额外服务市场领导者:Holiday Extras(机场停车场、酒店、接送等)
2017/10/07 全球购物
园长自我鉴定
2013/10/06 职场文书
初中三好学生事迹材料
2014/01/13 职场文书
少先队入队活动方案
2014/02/08 职场文书
《湘夫人》教学反思
2014/02/21 职场文书
八项规定个人对照检查材料思想汇报
2014/09/25 职场文书
实训报告范文大全
2014/11/04 职场文书
修改MySQL的数据库引擎为INNODB的方法
2021/05/26 MySQL