千家信息网

PHP如何批量生成图片缩略图

发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,这篇文章主要介绍PHP如何批量生成图片缩略图,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体如下:
千家信息网最后更新 2025年02月04日PHP如何批量生成图片缩略图

这篇文章主要介绍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如何批量生成图片缩略图"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

0