杨思为 | 我们一家

PHP用GD库生成高质量的缩略图片

在WEB应用开发中,经常需要添加图片信息,而这些图片信息在显示的时候会存在几个问题:

1、如果图片太大,会把页面撑开,使得页面很难看。

2、如果固定图片大小,图片感觉很怪异。

3、如果让图片多出来的部分自动隐藏,浏览者会看不到整个图片内容。

为此,我们需要将图片按照一定的比例进行压缩,动态生成一个图片的缩略图,下边是我在php开发中应用的方法,效果还不错,前提是必须安装了GD库,废话不多说了,看看代码吧。

<?$FILENAME=“image_name”;

// 生成图片的宽度
$RESIZEWIDTH=400;// 生成图片的高度
$RESIZEHEIGHT=400;function 

ResizeImage($im,$maxwidth,$maxheight,$name){
    
$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$im0000$newwidth$newheight$width$height);
        }else{
            
$newim imagecreate($newwidth$newheight);
              
imagecopyresized($newim$im0000$newwidth$newheight$width$height);
        }
        
ImageJpeg ($newim,$name “.jpg”);
        
ImageDestroy ($newim);
    }else{
        
ImageJpeg ($im,$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);
    }
}
?>

<img src=”<? echo($FILENAME.“.jpg?reload=”.rand(0,999999)); ?>“><br><br>

<form enctype=”multipart/form-data” method=”post”>
<br>
<input type=”file” name=”image” size=”50″ value=”浏览”><p>
<input type=”submit” value=”上传图片”>
</form> 

</body>
</html>

作者: 分类:WEB应用 标签: 时间:2007年12月17日

当前位置:首页>开发研究>WEB应用>

上一篇:

下一篇:

  1. 没有任何评论。
  1. 没有任何引用。

热门文章