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 类商品秒杀计时实现代码
May 05 PHP
php使用curl访问https示例分享
Jan 17 PHP
Zend Framework教程之路由功能Zend_Controller_Router详解
Mar 07 PHP
Zend Framework实现留言本分页功能(附demo源码下载)
Mar 22 PHP
win10环境PHP 7 安装配置【教程】
May 09 PHP
详解php用curl调用接口方法,get和post两种方式
Jan 13 PHP
php实现通过soap调用.Net的WebService asmx文件
Feb 27 PHP
PHP控制反转(IOC)和依赖注入(DI)
Mar 13 PHP
PHP Post获取不到非表单数据的问题解决办法
Feb 27 PHP
PHP基于面向对象实现的留言本功能实例
Apr 04 PHP
php session_decode函数用法讲解
May 26 PHP
Laravel定时任务的每秒执行代码
Oct 22 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
实用函数8
2007/11/08 PHP
phplist及phpmailer(组合使用)通过gmail发送邮件的配置方法
2016/03/30 PHP
PHP模版引擎原理、定义与用法实例
2019/03/29 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
2020/02/21 PHP
input 输入框内的输入事件详细分析
2010/03/17 Javascript
浅析Javascript使用include/require
2013/11/13 Javascript
js中arguments的用法(实例讲解)
2013/11/30 Javascript
node.js中的fs.chown方法使用说明
2014/12/16 Javascript
JavaScript定义全局对象的方法示例
2017/01/12 Javascript
ExtJs使用自定义插件动态保存表头配置(隐藏或显示)
2018/09/25 Javascript
详解ng-alain动态表单SF表单项设置必填和正则校验
2019/06/11 Javascript
详解JavaScript修改注册表的方法
2020/01/05 Javascript
[53:10]Secret vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
下载安装setuptool和pip linux安装pip    
2014/01/24 Python
介绍Python中几个常用的类方法
2015/04/08 Python
浅析Python 中整型对象存储的位置
2016/05/16 Python
Python环境变量设置方法
2016/08/28 Python
python实现图片识别汽车功能
2018/11/30 Python
python多任务之协程的使用详解
2019/08/26 Python
Python按照list dict key进行排序过程解析
2020/04/04 Python
CSS伪类与CSS伪元素的区别及由来具体说明
2012/12/07 HTML / CSS
ProBikeKit新西兰:自行车套件,跑步和铁人三项装备
2017/04/05 全球购物
斯洛伐克家具和时尚装饰品购物网站:Butlers.sk
2019/09/08 全球购物
印尼购物网站:iLOTTE
2019/10/16 全球购物
莫斯科大型旅游休闲商品超市:Camping.ru
2020/09/16 全球购物
网上常见的一份Linux面试题(多项选择部分)
2014/09/09 面试题
自我推荐书
2013/12/04 职场文书
“四风”问题的主要表现和危害思想汇报
2014/09/19 职场文书
2015幼儿园新学期寄语
2015/02/27 职场文书
生产车间主任岗位职责
2015/04/08 职场文书
小马王观后感
2015/06/11 职场文书
培训简讯范文
2015/07/20 职场文书
会议室使用管理制度
2015/08/06 职场文书
Python+Pillow+Pytesseract实现验证码识别
2022/05/11 Python
box-shadow单边阴影的实现
2023/05/21 HTML / CSS