iLeichun

当前位置: 首页 > 个人日志

用PHP生成缩略图

分类:个人日志   来源:原创   时间:2012-05-08 23:19:45

在做相册、产品等含图片预览功能的时候往往用缩略图来提高页面加载速度,PHP提供了生成缩略图的函数,下面的代码将说明如何用PHP生成缩略图。

<?php
   $dir="upload/"; //原始图片目录
   $fileType1="gif"; //图片类型1
   $fileType2="jpg"; //图片类型2
 
    $picName=“newImg”; //原图名称

   echo "<img width=¹150¹ height=¹100¹ style=¹border:0px¹ src=¹".$dir.$picName."¹ />";
  
      //生成缩略图并保存
       //获得图片源
       $photo = $dir.$picName;
       $length=strlen($picName);
       $type=mb_substr($picName,$length-3,$length,"utf8");
       

      //根据图片原来的类型生成图片
       if($type == $fileType1)
        $img = imagecreatefromgif($photo);
       else
        $img = imagecreatefromjpeg($photo);
       
       //缩略图尺寸
       $width=150;
       $height=100;
       //原图尺寸
       $srcWidth=imagesx($img);
      $srcHeight=imagesy($img);

       if(empty($img))
        return False;
                   
  if(function_exists("imagecreatetruecolor")) {
   $newImg = imagecreatetruecolor($width, $height);
   //分别为:新图、原图、新图x坐标、新图y坐标、原图x坐标、原图y坐标、新图宽、新图高、原图宽、原图高
   ImageCopyResampled($newImg, $img, 0, 0, 0, 0, $width, $height, $srcWidth, $srcHeight);
  }else{
   $newImg = imagecreate($width, $height);
   ImageCopyResized($newImg, $img, 0, 0, 0, 0, $width, $height, $srcWidth, $srcHeight);
  }

  if (file_exists($dir."small/".$picName))
   @unlink($dir."small/".$picName);
  
  //开始生成,并保存在small目录下
  filetype($photo)==$fileType1?imagegif ($newImg,$dir."small/".$picName):imageJpeg ($newImg,$dir."small/".$picName);

  //释放缓存
  ImageDestroy($newImg);
  ImageDestroy($img);
  //缩略图生成并保存完毕
?>
 

更多