2012-05-07 212 views
-2

我正在尋找某種功能,將圖像的大小調整爲100x100,200x200等,但保持上傳圖像的縱橫比。如何使用PHP調整圖像大小和裁剪圖像?

我的計劃是使用某種裁剪的,所以作物在圖像的中心它的高度或寬度後達到100

所以我的邏輯是有點像這樣。

if ($currentHeight > $currentWidth) { 
    //resize width to 100 and crop top and bottom off so it is 100 high 
} 

elseif ($currentWidth > $currentHeight) { 
    //resize height to 100 and crop left and right off so it is 100 wide 
} 

在我看來,圖像將是100x100,它不會看起來很奇怪!

有誰知道我怎麼可以做到這一點在一個整齊的功能?

+0

你搜索?谷歌或這個網站,有數以百萬計的例子 – 2012-05-07 00:52:52

+0

你可以先看看PHP手冊中的圖像功能,有一堆例子在那裏 – bumperbox

+0

http://wideimage.sourceforge.net/ – hakre

回答

0

如果要裁剪中心部分,然後我想邏輯用於計數座標可以是這樣的:

1)計數裁剪區域的horisontal座標系下:

$horizontal_center = $current_width/2; 
$left = $horizontal_center - $new_width/2; 
$right = $horizontal_center + $new_width/2; 

2)計數作物的垂直座標面積:

$vertical_center = $current_height/2; 
$top = $vertical_center - $new_height/2; 
$bottom = $vertical_center + $new_height/2; 
1

您還可以使用純CSS裁剪圖像使用clip:rect,以適應具體尺寸:

<style> 
/*Size of div that contains the dox*/ 
.crop{ 
    float:left; 
    position:relative; 
    width:100px; 
    height:100px; 
    margin:0 auto; 
    border: 2px solid #474747; 
} 

.crop img{ 
    margin:0; 
    position:absolute; 
    top:-25px; 
    left:-25px; 
    /*  (Top,Right,Bottom,Left) */ 
    clip:rect(25px 125px 125px 25px); 
}  
</style> 

<div class="crop"> 
    <img src="http://static.php.net/www.php.net/images/php.gif" width="200" title="" alt="" /> 
<div> 
<br/> 

<div class="crop"> 
    <img src="http://cdn.sstatic.net/stackoverflow/img/sprites.png?v=5" title="" alt="" /> 
<div> 

See In Action