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 操作调试的方法
Jul 12 PHP
PHP+memcache实现消息队列案例分享
May 21 PHP
php post大量数据时发现数据丢失问题解决方法
Jun 20 PHP
学习php设计模式 php实现状态模式
Dec 07 PHP
PHP读取文件内容的五种方式
Dec 28 PHP
屏蔽PHP默认设置中的Notice警告的方法
May 20 PHP
php使用ftp实现文件上传与下载功能
Jul 21 PHP
PHP自定义函数判断是否为Get、Post及Ajax提交的方法
Jul 27 PHP
PHP实现重载的常用方法实例详解
Oct 18 PHP
PHP信号处理机制的操作代码讲解
Apr 19 PHP
Laravel 简单实现Ajax滚动加载示例
Oct 22 PHP
PHP解决高并发问题
Apr 01 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把大写命名转换成下划线分割命名
2015/04/27 PHP
微信支付开发交易通知实例
2016/07/12 PHP
Laravel中encrypt和decrypt的实现方法
2017/09/24 PHP
解析arp病毒背后利用的Javascript技术附解密方法
2007/08/06 Javascript
XMLHTTPRequest的属性和方法简介
2010/11/23 Javascript
js控制的遮罩层实例介绍
2013/05/29 Javascript
jquery异步跨域访问代码
2013/06/28 Javascript
js导出txt示例代码
2014/01/14 Javascript
js post提交调用方法
2014/02/12 Javascript
Javascript判断图片尺寸大小实例分析
2014/06/16 Javascript
jQuery插件实现大图全屏图片相册
2015/03/14 Javascript
JavaScript实现单击下拉框选择直接跳转页面的方法
2015/07/02 Javascript
使用jQuery中的wrap()函数操作HTML元素的教程
2016/05/24 Javascript
js数组的五种迭代方法及两种归并方法(推荐)
2016/06/14 Javascript
AngularJs Injecting Services Into Controllers详解
2016/09/02 Javascript
JavaScript数组去重的6个方法
2017/01/21 Javascript
详解ECMAScript6入门--Class对象
2017/04/27 Javascript
js实现拖拽上传图片功能
2017/08/01 Javascript
ElementUI之Message功能拓展详解
2019/10/18 Javascript
[02:08]DOTA2英雄基础教程 马格纳斯
2014/01/17 DOTA
[55:42]VG vs VGJ.T 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
Python对两个有序列表进行合并和排序的例子
2014/06/13 Python
Python中使用ElementTree解析XML示例
2015/06/02 Python
python常用函数详解
2016/09/13 Python
使用python3调用wxpy模块监控linux日志并定时发送消息给群组或好友
2019/06/05 Python
python实现桌面托盘气泡提示
2019/07/29 Python
Django如何使用asyncio协程和ThreadPoolExecutor多线程
2020/10/12 Python
基于pycharm 项目和项目文件命名规则的介绍
2021/01/15 Python
HTML5 Canvas渐进填充与透明实现图像的Mask效果
2013/07/11 HTML / CSS
Farfetch阿联酋:奢侈品牌时尚购物平台
2019/07/26 全球购物
医学专业大学生求职的自我评价
2013/11/27 职场文书
转让协议书范本
2014/09/13 职场文书
毕业酒会致辞
2015/07/29 职场文书
《攀登者》:“海拔8000米以上,你不能指望任何人”
2019/11/25 职场文书
Pandas数据类型之category的用法
2021/06/28 Python
2022漫威和DC电影上映作品
2022/04/05 欧美动漫