<?php
/**
 * 缩略图片 
linux图片服务器
 * edit www.jb200.com
*/
    $picID=$_GET['imgID'];  
    $picTypes=".".$_GET['imgType'];  
    $picWidth=$_GET['ImgWidth'];  
    if($picID!="")  
    {  
          //请求的是小图  
          if($picWidth>0){  
              //如果小图存在  
              if(
file_exists($picID."_".$picWidth.$picTypes))  
              {  
                  outputImg($picID."_".$picWidth.$picTypes);  
              }else  
              {  
                  if(file_exists($picID."_0".$picTypes)){  
                  //如果不存在小图直接生成小图  
                  resizeImg($picID."_0".$picTypes,$picWidth,$picWidth,$picID."_".$picWidth.$picTypes);  
                  //输出  
                  outputImg($picID."_".$picWidth.$picTypes);  
                  }else  
                  {  
                      //如果大图不存在  
                      resizeImg('noDefaultImage.gif',$picWidth,$picWidth,noDefaultImage."_".$picWidth.".gif");  
                      //输出  
                      outputImg($picID."_".$picWidth.$picTypes);  
                      }  
              }  
          }  
        //判断文件是否存在大图  
        if(file_exists($picID."_0".$picTypes))  
        {  
          $img_file = $picID."_0".$picTypes;   
          outputImg($img_file);  
        }  
        else  
        {  
            //如果不存在图片  
          $img_file = 'noDefaultImage.gif';   
          outputImg($img_file);  
        }  
    }  
    //输出图片  
    function outputImg($img_file)  
    {  
        $fp = fopen($img_file, 'rb');  
          $content = fread($fp, filesize($img_file)); //二进制数据   
          fclose($fp);  
          header('Content-Type: image/gif');  
          echo $content;  
        }  
    /** 
    * 生成缩略图 
    * $srcName----为原图片路径 
    * $newWidth,$newHeight----分别缩略图的最大宽,高 
    * $newName----为缩略图文件名(含路径) 
    * @param string $srcName 
    * @param int $newWidth 
    * @param int $newHeight 
    * @param string $newName 
    * return viod 
    */  
    function resizeImg($srcName,$newWidth,$newHeight,$newName="")  
    {  
            if($newName=="")  
            {  
                    $nameArr=explode('.',$srcName);  
                    $expName=array_pop($nameArr);  
                    $expName=$expName;  
                    array_push($nameArr,$expName);  
                    $newName = implode('.',$nameArr);  
            }  
            $info = "";  
            $data = 
getimagesize($srcName,$info);  
            switch ($data[2])  
            {  
                    case 1:  
                            if(!function_exists("imagecreatefromgif")){  
                                    echo "你的GD库不能使用GIF格式的图片,请使用Jpeg或PNG格式!返回";  
                                    exit();  
                            }  
                            $im = ImageCreateFromGIF($srcName);  
                            
break;  
                    case 2:  
                            if(!function_exists("imagecreatefromjpeg")){  
                                    echo "你的GD库不能使用jpeg格式的图片,请使用其它格式的图片!返回";  
                                    exit();  
                            }  
                            $im = ImageCreateFromJpeg($srcName);  
                            break;  
                    case 3:  
                            $im = ImageCreateFromPNG($srcName);  
                            break;  
            }  
            $srcW=ImageSX($im);  
            $srcH=ImageSY($im);  
            $newWidthH=$newWidth/$newHeight;  
            $srcWH=$srcW/$srcH;  
            if($newWidthH<=$srcWH){  
                    $ftoW=$newWidth;  
                    $ftoH=$ftoW*($srcH/$srcW);  
            }  
            else{  
                    $ftoH=$newHeight;  
                    $ftoW=$ftoH*($srcW/$srcH);  
            }  
            if($srcW>$newWidth||$srcH>$newHeight)  
            {  
                    if(function_exists("imagecreatetruecolor"))  
                    {  
                            @$ni = ImageCreateTrueColor($ftoW,$ftoH);  
                            if($ni) ImageCopyResampled($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);  
                            else  
                            {  
                                    $ni=ImageCreate($ftoW,$ftoH);  
                                    ImageCopyResized($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);  
                            }  
                    }  
                    else  
                    {  
                            $ni=ImageCreate($ftoW,$ftoH);  
                            ImageCopyResized($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);  
                    }  
                    if(function_exists('imagejpeg')) ImageJpeg($ni,$newName);  
                    else ImagePNG($ni,$newName);  
                    ImageDestroy($ni);  
            }  
            ImageDestroy($im);  
    }  
?>