<?php $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); } ?>