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 18 PHP
ThinkPHP查询语句与关联查询用法实例
Nov 01 PHP
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2611816 bytes)
Nov 08 PHP
迪菲-赫尔曼密钥交换(Diffie?Hellman)算法原理和PHP实现版
May 12 PHP
php实现可逆加密的方法
Aug 11 PHP
php自定义函数实现二维数组排序功能
Jul 20 PHP
PHP CURL与java http使用方法详解
Jan 26 PHP
对于Laravel 5.5核心架构的深入理解
Feb 22 PHP
Laravel框架定时任务2种实现方式示例
Dec 08 PHP
PHP chop()函数讲解
Feb 11 PHP
Yii框架视图、视图布局、视图数据块操作示例
Oct 14 PHP
TP3.2.3框架文件上传操作实例详解
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
咖啡常见的种类
2021/03/03 新手入门
为查询结果建立向后/向前按钮
2006/10/09 PHP
ThinkPHP3.2.3数据库设置新特性
2015/03/05 PHP
PHP版微信公众平台红包API
2015/04/02 PHP
Zend Framework框架Smarty扩展实现方法
2016/03/22 PHP
php输出文字乱码的解决方法
2019/10/04 PHP
js一般方法改写成面向对象方法的无限级折叠菜单示例代码
2013/07/04 Javascript
js简单实现根据身份证号码识别性别年龄生日
2013/11/29 Javascript
js实现仿爱微网两级导航菜单效果代码
2015/08/31 Javascript
基于javascript数组实现图片轮播
2016/05/02 Javascript
如何利用Promises编写更优雅的JavaScript代码
2016/05/17 Javascript
Bootstrap Metronic完全响应式管理模板学习笔记
2016/07/08 Javascript
node使用UEditor富文本编辑器的方法实例
2017/07/11 Javascript
vue 添加vux的代码讲解
2017/11/30 Javascript
使用Vue组件实现一个简单弹窗效果
2018/04/23 Javascript
vue侧边栏动态生成下级菜单的方法
2018/09/07 Javascript
支付宝小程序tabbar底部导航
2018/11/06 Javascript
JavaScript利用键盘码控制div移动
2020/03/19 Javascript
[01:03:59]2018DOTA2亚洲邀请赛3月30日 小组赛B组VGJ.T VS Secret
2018/03/31 DOTA
Python多线程中阻塞(join)与锁(Lock)使用误区解析
2018/04/27 Python
详解pandas的外部数据导入与常用方法
2019/05/01 Python
简单了解python关系(比较)运算符
2019/07/08 Python
python 中Arduino串口传输数据到电脑并保存至excel表格
2019/10/14 Python
python多进程(加入进程池)操作常见案例
2019/10/21 Python
Python基于jieba, wordcloud库生成中文词云
2020/05/13 Python
解决canvas转base64/jpeg时透明区域变成黑色背景的方法
2016/10/23 HTML / CSS
德国大型的家具商店:Pharao24.de
2016/10/02 全球购物
AHAVA美国官方网站:死海海泥护肤品牌
2016/10/18 全球购物
入党思想汇报
2014/01/05 职场文书
公司活动策划方案
2014/01/13 职场文书
高中地理教学反思
2014/01/29 职场文书
捐资助学倡议书
2014/04/15 职场文书
家长对孩子的评语
2014/04/18 职场文书
学校安全生产月活动总结
2014/07/05 职场文书
python爬虫selenium模块详解
2021/03/30 Python
vue elementUI批量上传文件
2022/04/26 Vue.js