PHP实现将上传图片自动缩放到指定分辨率,并保持清晰度封装类示例


Posted in PHP onJune 17, 2019

本文实例讲述了PHP实现将上传图片自动缩放到指定分辨率,并保持清晰度封装类。分享给大家供大家参考,具体如下:

class AutoImage{
  private $image;
  public function resize($src, $width, $height){
    //$src 就是 $_FILES['upload_image_file']['tmp_name']
    //$width和$height是指定的分辨率
    //如果想按指定比例放缩,可以将$width和$height改为$src的指定比例
    $this->image = $src;
    $info = getimagesize($src);//获取图片的真实宽、高、类型
    if($info[0] == $width && $info[1] == $height){
      //如果分辨率一样,直接返回原图
      return $src;
    }
    switch ($info['mime']){
      case 'image/jpeg':
        header('Content-Type:image/jpeg');
        $image_wp = imagecreatetruecolor($width, $height);
        $image_src = imagecreatefromjpeg($src);
        imagecopyresampled($image_wp, $image_src, 0, 0, 0, 0, $width, $height, $info[0], $info[1]);
        imagedestroy($image_src);
        imagejpeg($image_wp,$this->image);
        break;
      case 'image/png':
        header('Content-Type:image/png');
        $image_wp = imagecreatetruecolor($width, $height);
        $image_src = imagecreatefrompng($src);
        imagecopyresampled($image_wp, $image_src, 0, 0, 0, 0, $width, $height, $info[0], $info[1]);
        imagedestroy($image_src);
        imagejpeg($image_wp,$this->image);
        break;
      case 'image/gif':
        header('Content-Type:image/gif');
        $image_wp = imagecreatetruecolor($width, $height);
        $image_src = imagecreatefromgif($src);
        imagecopyresampled($image_wp, $image_src, 0, 0, 0, 0, $width, $height, $info[0], $info[1]);
        imagedestroy($image_src);
        imagejpeg($image_wp,$this->image);
        break;
    }
    return $this->image;
  }
}

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
vs中通过剪切板循环来循环粘贴不同内容
Apr 30 PHP
解析PHP留言本模块主要功能的函数说明(代码可实现)
Jun 25 PHP
PHP中ob_start函数的使用说明
Nov 11 PHP
php统计文章排行示例
Mar 04 PHP
phpnow php探针环境检测代码
Nov 04 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
May 20 PHP
php基于SQLite实现的分页功能示例
Jun 21 PHP
PHP运用foreach神奇的转换数组(实例讲解)
Feb 01 PHP
PHP simplexml_load_string()函数实例讲解
Feb 03 PHP
php使用socket调用http和smtp协议实例小结
Jul 26 PHP
使用laravel根据用户类型来显示或隐藏字段
Oct 17 PHP
PHP实现倒计时功能
Nov 16 PHP
PHP 并发场景的几种解决方案
Jun 14 #PHP
PHP 实现文件压缩解压操作的方法
Jun 14 #PHP
php反射学习之依赖注入示例
Jun 14 #PHP
php反射学习之不用new方法实例化类操作示例
Jun 14 #PHP
PHP反射学习入门示例
Jun 14 #PHP
PHP如何实现阿里云短信sdk灵活应用在项目中的方法
Jun 14 #PHP
PHP中常用的三种设计模式详解【单例模式、工厂模式、观察者模式】
Jun 14 #PHP
You might like
dede全站URL静态化改造[070414更正]
2007/04/17 PHP
php简单复制文件的方法
2016/05/09 PHP
javascript html 静态页面传参数
2009/04/10 Javascript
jquery 学习之二 属性(html()与html(val))
2010/11/25 Javascript
JSDoc 介绍使用规范JsDoc的使用介绍
2011/02/12 Javascript
JavaScript 一道字符串分解的题目
2011/08/03 Javascript
jquery插件珍藏(图片局部放大/信息提示框)
2013/01/08 Javascript
JQuery中对Select的option项的添加、删除、取值
2013/08/25 Javascript
jquery.post用法关于type设置问题补充
2014/01/03 Javascript
innerHTML中标签可以换行的方法汇总
2015/08/14 Javascript
node操作mysql数据库实例详解
2017/03/17 Javascript
使用vue-cli+webpack搭建vue开发环境的方法
2017/12/22 Javascript
Angular实现的简单定时器功能示例
2017/12/28 Javascript
vue2.0 根据状态值进行样式的改变展示方法
2018/03/13 Javascript
Vue Cli3 创建项目的方法步骤
2018/10/15 Javascript
js中位运算的运用实例分析
2018/12/11 Javascript
使用JavaScript通过前端发送电子邮件
2020/05/22 Javascript
[03:12]完美世界DOTA2联赛PWL DAY6集锦
2020/11/05 DOTA
使用Python求解最大公约数的实现方法
2015/08/20 Python
numpy库与pandas库axis=0,axis= 1轴的用法详解
2019/05/27 Python
python调用自定义函数的实例操作
2019/06/26 Python
Python产生一个数值范围内的不重复的随机数的实现方法
2019/08/21 Python
基于pandas中expand的作用详解
2019/12/17 Python
python数据分析工具之 matplotlib详解
2020/04/09 Python
python/golang 删除链表中的元素
2020/09/14 Python
CSS3制作气泡对话框的实例教程
2016/05/10 HTML / CSS
Html5与App的通讯方式详解
2019/10/24 HTML / CSS
新西兰床上用品和家居用品购物网站:Adairs
2018/04/27 全球购物
什么时候用assert
2015/05/08 面试题
电子信息工程专业求职信
2014/06/28 职场文书
我的中国梦演讲稿小学篇
2014/08/19 职场文书
机关党员公开承诺书
2014/08/30 职场文书
2014迎接教师节演讲稿
2014/09/10 职场文书
工作计划范文之财务管理
2019/08/09 职场文书
甜美蛋糕店的创业计划书模板,拿来即用!
2019/08/21 职场文书
pytorch损失反向传播后梯度为none的问题
2021/05/12 Python