// 本函数从源文件取出图象,设定成指定大小,并输出到目的文件 
// 源文件格式:gif,jpg,jpe,jpeg,png 
// 目的文件格式:jpg 
// 参数说明: 
// $srcFile 源文件 
// $dstFile 目标文件 
// $dstW 目标图象宽度 
// $dstH 目标图象高度 
function makethumb($srcFile,$dstFile,$dstW,$dstH) { 
$data = GetImageSize($srcFile,&$info); 
switch ($data[2]) { 
case 1: 
$im = @ImageCreateFromGIF($srcFile); 
break; 
case 2: 
$im = @imagecreatefromjpeg($srcFile); 
break; 
case 3: 
$im = @ImageCreateFromPNG($srcFile); 
break; 

$srcW=ImageSX($im); 
$srcH=ImageSY($im); 
$dstX=0; 
$dstY=0; 
if ($srcW*$dstH>$srcH*$dstW) { $fdstH=round($srcH*$dstW/$srcW); $dstY=floor(($dstH-$fdstH)/2); $fdstW=$dstW; } 
else { $fdstW=round($srcW*$dstH/$srcH); $dstX=floor(($dstW-$fdstW)/2); $fdstH=$dstH; } 
$ni=ImageCreate($dstW,$dstH); 
$dstX=($dstX<0)?0:$dstX; 
$dstY=($dstX<0)?0:$dstY; 
$dstX=($dstX>($dstW/2))?floor($dstW/2):$dstX; 
$dstY=($dstY>($dstH/2))?floor($dstH/s):$dstY; 
$black = ImageColorAllocate($ni, 0,0,0);//填充的背景色你可以重新指定,我用的是黑色 
imagefilledrectangle($ni,0,0,$dstW,$dstH,$black); 
ImageCopyResized($ni,$im,$dstX,$dstY,0,0,$fdstW,$fdstH,$srcW,$srcH); 
ImageJpeg($ni,$dstFile);//如果你要把图片直接输出到浏览器, 
//那么把第二个参数去掉,并用header()函数指定mine类型先 
imagedestroy($im); 
imagedestroy($ni);