经典的PHP缩略图生成程式,基于GD库,可指定生成路径及生成目标的宽高细节
使用方法:在支持GD库的PHP环境中,将以下代码另存为resize.php测试
复制代码 代码如下:
$FILENAME="image_name";
//生成图片的宽度
$RESIZEWIDTH=400;
//生成图片的高度
$RESIZEHEIGHT=400;
//生成图片的路径
$uploaddir="c:/winnt/temp";
functionResizeImage($im,$maxwidth,$maxheight,$name){
global$uploaddir;
$width=imagesx($im);
$height=imagesy($im);
if(($maxwidth&&$width>$maxwidth)||($maxheight&&$height>$maxheight)){
if($maxwidth&&$width>$maxwidth){
$widthratio=$maxwidth/$width;
$RESIZEWIDTH=true;
}
if($maxheight&&$height>$maxheight){
$heightratio=$maxheight/$height;
$RESIZEHEIGHT=true;
}
if($RESIZEWIDTH&&$RESIZEHEIGHT){
if($widthratio<$heightratio){
$ratio=$widthratio;
}else{
$ratio=$heightratio;
}
}elseif($RESIZEWIDTH){
$ratio=$widthratio;
}elseif($RESIZEHEIGHT){
$ratio=$heightratio;
}
$newwidth=$width*$ratio;
$newheight=$height*$ratio;
if(function_exists("imagecopyresampled")){
$newim=imagecreatetruecolor($newwidth,$newheight);
imagecopyresampled($newim,$im,0,0,0,0,$newwidth,$newheight,$width,$height);
}else{
$newim=imagecreate($newwidth,$newheight);
imagecopyresized($newim,$im,0,0,0,0,$newwidth,$newheight,$width,$height);
}
ImageJpeg($newim,$uploaddir.$name.".jpg");
ImageDestroy($newim);
}else{
ImageJpeg($im,$uploaddir.$name.".jpg");
}
}
if($_FILES['image']['size']){
if($_FILES['image']['type']=="image/pjpeg"){
$im=imagecreatefromjpeg($_FILES['image']['tmp_name']);
}elseif($_FILES['image']['type']=="image/x-png"){
$im=imagecreatefrompng($_FILES['image']['tmp_name']);
}elseif($_FILES['image']['type']=="image/gif"){
$im=imagecreatefromgif($_FILES['image']['tmp_name']);
}
if($im){
if(file_exists("$FILENAME.jpg")){
unlink("$FILENAME.jpg");
}
ResizeImage($im,$RESIZEWIDTH,$RESIZEHEIGHT,$FILENAME);
ImageDestroy($im);
}
}
?>