可定制的PHP缩略图生成程式(需要GD库支持)

2018-09-07 12:59

阅读:410

  经典的PHP缩略图生成程式,基于GD库,可指定生成路径及生成目标的宽高细节使用方法:在支持GD库的PHP环境中,将以下代码另存为resize.php测试


经典的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);
}
}
?>

<imgsrc=<?echo($FILENAME..jpg?reload=.rand(0,999999));?>><br><br>

<formenctype=multipart/form-datamethod=post>
<br>
<inputtype=filename=imagesize=50value=浏览><p>
<inputtype=submitvalue=上传图片>
</form>

</body>
</html>



评论


亲,登录后才可以留言!