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 相关文章推荐
不支持fsockopen但支持culr环境下下ucenter与modoer通讯问题
Aug 12 PHP
linux iconv方法的使用
Oct 01 PHP
供参考的 php 学习提高路线分享
Oct 23 PHP
解析php中获取url与物理路径的总结
Jun 21 PHP
php快递单号查询接口使用示例
May 05 PHP
PHP中的流(streams)浅析
Jul 02 PHP
实例讲解如何在PHP的Yii框架中进行错误和异常处理
Mar 17 PHP
php基于CodeIgniter实现图片上传、剪切功能
May 14 PHP
php中__toString()方法用法示例
Dec 07 PHP
使用laravel的migrate创建数据表的方法
Sep 30 PHP
Laravel 自动转换长整型雪花 ID 为字符串的实现
Oct 27 PHP
详解Laravel制作API接口
May 31 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
用Socket发送电子邮件(利用需要验证的SMTP服务器)
2006/10/09 PHP
php下封装较好的数字分页方法
2010/11/23 PHP
Yii实现多按钮保存与提交的方法
2014/12/03 PHP
Symfony2联合查询实现方法
2016/03/18 PHP
php多线程并发实现方法
2016/09/30 PHP
Zend Framework入门教程之Zend_View组件用法示例
2016/12/09 PHP
JavaScript 无符号右移赋值操作
2009/04/17 Javascript
javascript delete 使用示例代码
2010/03/29 Javascript
微信WeixinJSBridge API使用实例
2015/05/25 Javascript
JS判断form内所有表单是否为空的简单实例
2016/09/09 Javascript
jQuery插件FusionCharts实现的MSBar3D图效果示例【附demo源码】
2017/03/23 jQuery
JavaScript之事件委托实例(附原生js和jQuery代码)
2017/07/22 jQuery
JS实现遍历不规则多维数组的方法
2018/03/21 Javascript
详解jQuery获取特殊属性的值以及设置内容
2018/11/14 jQuery
JS相册图片抖动放大展示效果的示例代码
2021/01/29 Javascript
urllib2自定义opener详解
2014/02/07 Python
pymongo给mongodb创建索引的简单实现方法
2015/05/06 Python
一张图带我们入门Python基础教程
2017/02/05 Python
详解flask入门模板引擎
2018/07/18 Python
Python rstrip()方法实例详解
2018/11/11 Python
对Pycharm创建py文件时自定义头部模板的方法详解
2019/02/12 Python
使用python获取(宜宾市地震信息)地震信息
2019/06/20 Python
flask应用部署到服务器的方法
2019/07/12 Python
python3连接mysql获取ansible动态inventory脚本
2020/01/19 Python
Python 实现使用空值进行赋值 None
2020/03/12 Python
浅析Python 责任链设计模式
2020/09/11 Python
改变 Python 中线程执行顺序的方法
2020/09/24 Python
基于python实现监听Rabbitmq系统日志代码示例
2020/11/28 Python
分享8款纯CSS3实现的搜索框功能
2017/09/14 HTML / CSS
浅谈HTML5 defer和async的区别
2016/06/07 HTML / CSS
HTML5实现QQ聊天气泡效果
2017/06/26 HTML / CSS
Stubhub英国:购买体育、演唱会和剧院门票
2018/06/10 全球购物
设置器与访问器的定义以及各自特点
2016/01/08 面试题
教师绩效工资方案
2014/02/01 职场文书
大学活动总结模板
2014/07/10 职场文书
三年级学生评语大全
2014/12/26 职场文书