2011-04-19 57 views
1

我有這個模型以裁剪用戶的圖像笨圖像裁剪 - 圖像不受作物()參數

function crop_avatar() 
{ 
    $id = $this->tank_auth->get_user_id(); 

    //get current avatar 
    $query = $this->db->get_where('user_profiles', array('id' => $id)); 
    foreach ($query->result() as $row) { 
     $j[$row->avatar] = $row->avatar; 
    } 

    $config['image_library'] = 'gd'; 
    $config['source_image'] = '.' . substr("$row->avatar", 18); 
    $config['x_axis'] = '10'; 
    $config['y_axis'] = '60'; 
    $this->load->library('image_lib');  
    $this->image_lib->initialize($config); 

    if (! $this->image_lib->crop()) 
    { 
     echo $this->image_lib->display_errors(); 
    } 

//  print_r($config); 


} 

生成此陣列(經由的print_r)

Array 
(
    [image_library] => gd 
    [source_image] => ./images/avatars/b0b623057.jpg 
    [x_axis] => 10 
    [y_axis] => 60 
) 

出於某種原因不明對我來說 - 沒有種植。原始圖像直通這個模型,並且沒有改變。

我在我的服務器上有GD - 任何想法可能是錯誤的?

謝謝了。

回答

7

您需要定義希望裁剪圖像的寬度和高度。

x_axisy_axis配置值是您的現有圖像中作物應該開始的點。

換一種方式,需要4次測量,以裁剪圖像:從哪裏開始垂直(y_axis),其中以水平(x_axis)開始,其中垂直(height)結束,在哪裏水平結束(width

如果你裁剪圖像的尺寸之一是一樣的,你的原始圖像的,不要忘記設置maintain_ratiofalse

+0

你救了我的一天 - 非常感謝你的小費 - 太糟糕CI文檔省略您提供的信息 – pepe 2011-04-19 22:56:34

+0

我認爲這將有助於提及「何處sta rt「相對於左上角,」到哪裏「與x_axis和y_axis的座標有關。換句話說,關於左上角的「到哪裏結束」實際上是和(y_axis + height)和(x_axis + width)。也許這對某些人來說是顯而易見的,但對我來說不是這樣,因爲在幾何圖形中,圖的原始位置通常位於左下角,而y的正值會像在這種情況下那樣上升而不是下降。 – 2013-01-15 19:34:36