function image_scale($img_a,$w_a=100,$h_a=100,$pre="s_"){
//1、获取原图片信息
$imginfo = getimagesize($img_a);//getimagesize返回一个数组:下标0是宽,1是高,2是类型
$w=$imginfo[0];//原图片宽
$h=$imginfo[1];//原图片高
switch($imginfo[2]){//获取图片类型并创建对应图片资源
case 1: //gif
$im=imagecreatefromgif($img_a);
break;
case 2://jpg
$im=imagecreatefromjpeg($img_a);
break;
case 3: //png2wbmp
$im=imagecreatefrompng($img_a);
break;
default:
die("imagecreate图片类型错误");
}
//2、获取缩放比例
if($w_a/$w > $h_a/$h){
$scale = $h_a/$h;
}else{
$scale = $w_a/$w;
}
$w_b = $w*$scale;//缩放图片的宽和高
$h_b = $h*$scale;
//3、创建新图片
$im_new = imagecreatetruecolor($w_b,$h_b);
//重采样图片:参数1新图片源,2原图片源,3和4新图片位置,5和6老图片位置,7和8新图片宽和高,9和10是老图片宽和高
imagecopyresampled($im_new,$im,0,0,0,0,$w_b,$h_b,$w,$h);
$img_info=pathinfo($img_a);//获取原图片名
$img_name=$img_info["dirname"]."/".$pre."_".$img_info["basename"];//缩略图名
switch($imginfo[2]){//输出新图片
case 1: //gif
imagegif($im_new,$img_name);
break;
case 2://jpg
imagejpeg($im_new,$img_name);
break;
case 3: //png2wbmp
imagepng($im_new,$img_name);
break;
default:
die("输出图片类型错误");
}
imagedestroy($im); //释放原图片资源
imagedestroy($im_new);//释放新图片资源
return $img_name; //返回缩略图片名
}