一个分享个人学习、开发经验的Blog,http://www.joyphper.net

利用PHP实现图片等比例放大和缩小

posted @ 2010-10-02 13:09 | 阅读:5682 | 评论:0 | 分类: PHP

国庆在家无事,无聊的看看以前写的一些代码,发现总是有些不如意的地方,今天发现在一个网站上图片是变形的,原因是因为那个页面上的图片大小不一样,而我为了防止页面变形是在HTML里限制了图片的大小,突然一想,有没有什么办法来实现既能限制图片的大小,又不让图片变形呢,查看了php有关图像处理的资料,下面是源代码,写得有些简单。

 

function resizeimage($srcfile,$mySize){  
 
    $size=getimagesize($srcfile);  
 
    switch($size[2]){  
 
        case 1:  
 
            $img=imagecreatefromgif($srcfile);  
 
            break;  
 
        case 2:  
 
            $img=imagecreatefromjpeg($srcfile);  
 
            break;  
 
        case 3:  
 
            $img=imagecreatefrompng($srcfile);  
 
            break;  
 
    }  
//源图片的宽度和高度  
 
    $oldImg['w']=imagesx($img);  
 
    $oldImg['h']=imagesy($img);  
 
    if ($oldImg['w']<=$mySize['w'] && $oldImg['h']<156){  
 
        $rate=1;  
 
    }elseif ($oldImg['w']>$mySize['w'] && $oldImg['h']<$mySize['h']){  
 
        $rate=$mySize['w']/$oldImg['w'];  
 
    }elseif ($oldImg['w']<$mySize['w'] && $oldImg['h']>$mySize['h']){  
 
        $rate=$mySize['h']/$oldImg['h'];  
 
    }elseif ($oldImg['w']>$mySize['w'] && $oldImg['h']>$mySize['h']){  
 
        $rate1=$mySize['w']/$oldImg['w'];  
 
        $rate2=$mySize['h']/$oldImg['h'];  
 
        if ($rate1>$rate2){$rate=$rate2;}else{$rate=$rate1;}  
 
    }  
 
    $newImg['w']=$oldImg['w']*$rate;  
 
    $newImg['h']=$oldImg['h']*$rate;  
 
    return "width=".$newImg['w']." height=".$newImg['h'];  
 
} 

 

应用实例

 

$mySize=array('w'=>143,'h'=>156);
$imgSize=resizeimage("22.jpg",$mySize);
echo "<img src="22.jpg"".resizeimage("22.jpg",$mySize)."/>"; 

TAG: php学习 , 图片放大缩小

共有0条评论 发表评论>>

点击换一张验证码