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 相关文章推荐
强烈推荐:php.ini中文版(1)
Oct 09 PHP
Zend Guard一些常见问题解答
Sep 11 PHP
php入门学习知识点五 关于php数组的几个基本操作
Jul 14 PHP
php中配置文件操作 如config.php文件的读取修改等操作
Jul 07 PHP
php数组一对一替换实现代码
Aug 31 PHP
PHP调用VC编写的COM组件实例
Mar 29 PHP
php 5.6版本中编写一个PHP扩展的简单示例
Jan 20 PHP
php用户登录之cookie信息安全分析
May 13 PHP
PhpStorm terminal无法输入命令的解决方法
Oct 09 PHP
thinkphp3.2实现在线留言提交验证码功能
Jul 19 PHP
PHP Primary script unknown 解决方法总结
Aug 22 PHP
PHP的HTTP客户端Guzzle简单使用方法分析
Oct 30 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
echo(),print(),print_r()之间的区别?
2006/11/19 PHP
php将mysql数据库整库导出生成sql文件的具体实现
2014/01/08 PHP
PHP模板引擎smarty详细介绍
2015/05/26 PHP
php禁用cookie后session设置方法分析
2016/10/19 PHP
使用PHPStorm+XDebug搭建单步调试环境
2017/11/19 PHP
php微信支付之公众号支付功能
2018/05/30 PHP
php求斐波那契数的两种实现方式【递归与递推】
2019/09/09 PHP
jQuery插件 selectToSelect使用方法
2013/10/02 Javascript
JavaScript正则表达式的分组匹配详解
2016/02/13 Javascript
javascript html5移动端轻松实现文件上传
2020/03/27 Javascript
浅谈移动端之js touch事件 手势滑动事件
2016/11/07 Javascript
用v-html解决Vue.js渲染中html标签不被解析的问题
2016/12/14 Javascript
JS实现最简单的冒泡排序算法
2017/02/15 Javascript
JavaScript 基础表单验证示例(纯Js实现)
2017/07/20 Javascript
微信小程序实现点击按钮修改字体颜色功能【附demo源码下载】
2017/12/05 Javascript
JS文件中加载jquery.js的实例代码
2018/05/05 jQuery
在vue中使用vue-echarts-v3的实例代码
2018/09/13 Javascript
Node.js对MongoDB进行增删改查操作的实例代码
2019/04/18 Javascript
JS实现小星星特效
2019/12/24 Javascript
vue 基于abstract 路由模式 实现页面内嵌的示例代码
2020/12/14 Vue.js
[46:37]LGD vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python类的定义、继承及类对象使用方法简明教程
2015/05/08 Python
Python设计模式之观察者模式简单示例
2018/01/10 Python
Python模拟自动存取款机的查询、存取款、修改密码等操作
2018/09/02 Python
在Python中使用Neo4j的方法
2019/03/14 Python
Python弹出输入框并获取输入值的实例
2019/06/18 Python
Pytorch Tensor基本数学运算详解
2019/12/30 Python
Django实现任意文件上传(最简单的方法)
2020/06/03 Python
python lambda的使用详解
2021/02/26 Python
试用期转正鉴定评语
2014/01/27 职场文书
理工大学毕业生自荐信范文
2014/02/22 职场文书
婚庆公司计划书
2014/09/15 职场文书
2014年商场工作总结
2014/11/22 职场文书
八一建军节主持词
2015/07/01 职场文书
会议承办单位欢迎词
2019/07/09 职场文书
nginx搭建NFS网络文件系统
2022/04/14 Servers