<?php
//自动生成图片缩略图
// 本函数从源文件取出图象,设定成指定大小,并输出到目的文件
// 源文件格式: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);
}
?>