侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

PHP批量生成图片缩略图的方法

php  /  管理员 发布于 7年前   158

本文实例讲述了PHP批量生成图片缩略图的方法。分享给大家供大家参考。具体如下:

dir=$olddir ? $olddir : "./images/temp";   $this->newdir=$newdir ? $newdir : "./images/s";  }  function reNames($src)  {   $md5file=substr(md5($src),10,10).strrchr($src,".");   //MD5文件名后(例如:3293okoe.gif)   $md5file=$this->w."_".$this->h."_".$md5file;   //处理后文件名   return $this->newdir."/".$md5file;   //将源图片,MD5文件名后保存到新的目录里  }  function Mini($src,$w,$h,$q=80)  //生成缩略图 Mini(图片地址, 宽度, 高度, 质量)  {   $this->src=$src;   $this->w=$w;   $this->h=$h;   if(strrchr($src,".")==".gif" && $this->regif==0)   //是否处理GIF图   {    return $this->src;   }   if($this->keep==0) //是否保留源文件,默认不保留   {    $newsrc=$this->reNames($src); //改名后的文件地址   }   else     //保持原名   {    $src=str_replace("\\","/",$src);    $newsrc=$this->newdir.strrchr($src,"/");   }   if(file_exists($newsrc) && $this->over==0)   //如果已存在,直接返回地址   {    return $newsrc;   }   if(strstr($src,"http://") && !strstr($src,$_SERVER['HTTP_HOST']))   //如果是网络文件,先保存   {    $src=$this->getimg($src);   }   $arr=getimagesize($src); //获取图片属性   $width=$arr[0];   $height=$arr[1];   $type=$arr[2];   switch($type)   {    case 1:  //1 = GIF,     $im=imagecreatefromgif($src);     break;    case 2:  //2 = JPG     $im=imagecreatefromjpeg($src);     break;    case 3:  //3 = PNG     $im=imagecreatefrompng($src);     break;    default:     return 0;   }   //处理缩略图   $nim=imagecreatetruecolor($w,$h);   $k1=round($h/$w,2);   $k2=round($height/$width,2);   if($k1<$k2)   {    $width_a=$width;    $height_a=round($width*$k1);    $sw=0;    $sh=($height-$height_a)/2;   }   else   {     $width_a=$height/$k1;     $height_a=$height;     $sw=($width-$width_a)/2;     $sh = 0;   }   //生成图片   if(function_exists(imagecopyresampled))   {    imagecopyresampled($nim,$im,0,0,$sw,$sh,$w,$h,$width_a,$height_a);   }   else   {    imagecopyresized($nim,$im,0,0,$sw,$sh,$w,$h,$width_a,$height_a);   }   if(!is_dir($this->newdir))   {    mkdir($this->newdir);   }   switch($type)  //保存图片   {    case 1:     $rs=imagegif($nim,$newsrc);     break;    case 2:     $rs=imagejpeg($nim,$newsrc,$q);     break;    case 3:     $rs=imagepng($nim,$newsrc);     break;    default:     return 0;   }   return $newsrc; //返回处理后路径  }  function getimg($filename)  {   $md5file=$this->dir."/".substr(md5($filename),10,10).strrchr($filename,".");   if(file_exists($md5file))   {    return $md5file;   }   //开始获取文件,并返回新路径   $img=file_get_contents($filename);   if($img)   {    if(!is_dir($this->dir))    {     mkdir($this->dir);    }    savefile($md5file,$img);    return $md5file;   }  }  function reImg($src,$w,$h,$q)  //转换缩略图(文件名和结构不变)  {   $this->keep=1;   return $this->Mini($src,$w,$h,$q);   //return 生成的地址  } } $image=new image(); echo $image->reImg("images/zht.jpg",75,75,80); echo "
"; echo $image->reImg("images/m8920.jpg",75,75,80); echo "
"; echo $image->getimg("./images/s/zht.jpg");?>

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

您可能感兴趣的文章:

  • php实现上传图片生成缩略图示例
  • 使用gd库实现php服务端图片裁剪和生成缩略图功能分享
  • php图片的裁剪与缩放生成符合需求的缩略图
  • php实现按指定大小等比缩放生成上传图片缩略图的方法
  • PHP用GD库生成高质量的缩略图片
  • jquery+php+ajax显示上传进度的多图片上传并生成缩略图代码
  • 使用PHP生成图片的缩略图的方法
  • 基于GD2图形库的PHP生成图片缩略图类代码分享
  • PHP Imagick完美实现图片裁切、生成缩略图、添加水印
  • 基于PHP服务端图片生成缩略图的方法详解
  • php上传图片生成缩略图(GD库)
  • php实现图片上传并利用ImageMagick生成缩略图
  • php生成图片缩略图功能示例


  • 上一条:
    php身份证号码检查类实例
    下一条:
    基于php的CMS中展示文章类实例分析
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • 用Time Warden监控PHP中的代码处理时间(0个评论)
    • 在PHP中使用array_pop + yield实现读取超大型目录功能示例(0个评论)
    • Property Hooks RFC在PHP 8.4中越来越接近现实(0个评论)
    • 近期文章
    • 在windows10中升级go版本至1.24后LiteIDE的Ctrl+左击无法跳转问题解决方案(0个评论)
    • 智能合约Solidity学习CryptoZombie第四课:僵尸作战系统(0个评论)
    • 智能合约Solidity学习CryptoZombie第三课:组建僵尸军队(高级Solidity理论)(0个评论)
    • 智能合约Solidity学习CryptoZombie第二课:让你的僵尸猎食(0个评论)
    • 智能合约Solidity学习CryptoZombie第一课:生成一只你的僵尸(0个评论)
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2017-06
    • 2017-07
    • 2017-08
    • 2017-09
    • 2017-11
    • 2017-12
    • 2018-01
    • 2018-02
    • 2018-03
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-09
    • 2021-02
    • 2021-03
    • 2021-04
    • 2021-05
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2021-12
    • 2022-01
    • 2022-02
    • 2022-05
    • 2022-06
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-06
    • 2023-07
    • 2023-08
    • 2023-09
    • 2023-10
    • 2023-11
    • 2023-12
    • 2024-01
    • 2024-02
    • 2024-03
    • 2024-04
    • 2024-05
    • 2024-06
    • 2024-07
    • 2024-09
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客