2010-09-13 55 views
6

我認爲$config['maintain_ratio'] = TRUE;會導致寬度被計算,如果我只指定一個高度。我想我必須提供任何高度的大數以使其工作?Codeigniter沒有保持長寬比

$config['image_library'] = 'gd2'; 
    $config['source_image']  = $image_filepath; 
    $config['new_image']  = $thumbnail_filepath; 
    $config['maintain_ratio'] = TRUE; 
    $config['height']   = $this->thumbnail_height; 

    $this->image_lib->initialize($config); 

回答

16

正確,您必須指定高度和寬度。由於啓用了maintain_ratio選項,調整大小將盡可能接近目標大小,同時保留原始高寬比。

然而,如果你想確保它總是在一定的高度,master_dim配置選項設置爲「高度」,那麼你可以設置寬度到任何東西,它總是會做出調整大小的形象,高度,同時保持縱橫與寬度的比例。類似的想法可以保持寬度。

+2

以前應該看到你的回答,如果我有大聲笑,我不會用我的圖像調整器代碼來填充數學變通辦法 – siaooo 2012-05-22 04:57:35

7

@Mitchell McKenna, Thanx。這對我幫助很大。

在我的項目中,源圖像可能有任何大小。 ,我想它的「245」 PX的寬度,與維持率, 所以, 我只是做了這樣的....

$config['width'] = '245'; 
$config['height'] = '1'; 
$config['maintain_ratio'] = TRUE; 
$config['master_dim'] = 'width'; 

和它的工作。 Thanx

0

將其他維度設置爲1將根據第一個值進行大小調整。例如,如果你想保持width = 700px並根據這個比例計算高度;

$config['width'] = 700; 
$config['height'] = 1; // force resizing based on width