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

 更新时间:2019年06月17日 10:57:10   作者:ltx06  
这篇文章主要介绍了PHP实现将上传图片自动缩放到指定分辨率,并保持清晰度封装类,涉及php针对jpeg、png、gif等格式图片的缩放与输出相关操作技巧,需要的朋友可以参考下

本文实例讲述了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数组(Array)操作技巧大全》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《PHP数学运算技巧总结》、《php字符串(string)用法总结》及《php常见数据库操作技巧汇总

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

相关文章

  • PHP文件上传问题汇总(文件大小检测、大文件上传处理)

    PHP文件上传问题汇总(文件大小检测、大文件上传处理)

    这篇文章主要介绍了PHP文件上传问题汇总,包括文件大小检测、大文件上传处理,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • 在Linux系统的服务器上隐藏PHP版本号的方法

    在Linux系统的服务器上隐藏PHP版本号的方法

    这篇文章主要介绍了在Linux系统的服务器上隐藏PHP版本号的方法,有助于预防攻击者针对PHP详细版本的漏洞而发起的攻击,需要的朋友可以参考下
    2015-06-06
  • php 将excel导入mysql

    php 将excel导入mysql

    最近因项目需求,要实现将excel文件通过php页面导入mysql数据库中。在网上搜了很多这方面的资料,发现都是将excel文件另存为csv文件,然后从csv文件导入。
    2009-11-11
  • PHP笛卡尔积实现算法示例

    PHP笛卡尔积实现算法示例

    这篇文章主要介绍了PHP笛卡尔积实现算法,涉及php数组的递归、遍历、判断、拼接等相关操作技巧,需要的朋友可以参考下
    2018-07-07
  • php抽象类和接口知识点整理总结

    php抽象类和接口知识点整理总结

    这篇文章主要介绍了php抽象类和接口知识点,整理总结了php抽象类与接口的概念、原理、操作技巧及相关使用注意事项,需要的朋友可以参考下
    2019-08-08
  • php数字每三位加逗号的功能函数

    php数字每三位加逗号的功能函数

    这篇文章主要介绍了php数字每三位加逗号的功能函数,想知道如何做到数字每三位加逗号的朋友可以参考下
    2015-10-10
  • 用PHP编写和读取XML的几种方式

    用PHP编写和读取XML的几种方式

    今天我看了IBM的一些官方文档和一些XML的相关资料,特把一些关键点以及PHP编写和读取XML的一些实例整理出来,方便以后使用
    2013-01-01
  • PHP实现生成唯一会员卡号

    PHP实现生成唯一会员卡号

    当每个会员登录进来,在查询数据库的情况下生成一组数字或者是数字与字母组合不重复的会员卡号,接下来,给大家演示一个小程序,基于php实现生成唯一会员卡号,有需要的朋友一起来学习吧
    2015-08-08
  • mysql 中InnoDB和MyISAM的区别分析小结

    mysql 中InnoDB和MyISAM的区别分析小结

    InnoDB和MyISAM是在使用MySQL最常用的两个表类型,各有优缺点,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。
    2008-04-04
  • php实现选择排序法的代码示例

    php实现选择排序法的代码示例

    选择排序法是一种简单的排序算法,其基本思想是每次从未排序的部分中选择最小(或最大)的元素,然后放到已排序部分的末尾,本文给大家介绍了如何使用php实现选择排序法,感兴趣的朋友可以参考下
    2023-11-11

最新评论