2012-06-25 245 views
1

我使用CodeIgniter中的image_lib類來重新調整圖像大小,它工作正常;這裏是我的代碼:圖像調整大小Codeigniter

function resizeImage($source_image,$new_image,$width=100,$height=100){ 
     $config['image_library'] = 'gd2'; 
     $config['source_image'] = $source_image; 
     $config['new_image'] = $new_image; 
     $config['maintain_ratio'] = TRUE; 
     $config['width'] = $width; 
     $config['height'] = $height; 
     $this->image_lib->initialize($config); 

     if($this->image_lib->resize()) return true; 
     else return false; 
} 

但是,我試圖實現,無論它是什麼形象,風景或肖像。大小。裁剪圖像以設定尺寸。

目前,它們以這種方式裁切後,圖像以不同尺寸的大拇指出現,主要是以風景或肖像爲主。而如果你進入一個網站,如this,你會看到所有的拇指都是完全相同的比例,寬度和高度。

我該如何做到這一點?

乾杯。

編輯

優秀教程做的正是這一點,可以在這裏找到:

CodeIgniter.tv


我試圖作物和按比例縮放的拇指CI,如下所示:

好的,那麼你可以先將圖像裁剪成方形圖像,然後將 調整大小。看看這裏:stackoverflow.com/a/3327424/844726 - swatkins 6月26日在13:33

function resizeImg(){ 
    $source_image = base_url().'pic2.jpg'; 
    $config['image_library'] = 'gd2'; 
    $config['source_image'] = $source_image; 
    $config['new_image'] = $new_image; 
    $config['maintain_ratio'] = TRUE; 
    $config['x_axis'] = '10'; 
    $config['y_axis'] = '10'; 
    $config['width'] = $width; 
    $config['height'] = $height; 
    $this->image_lib->initialize($config); 
} 

當我像這樣運行腳本:

http://localhost/test/index.php/cronJobs/resizeImg 

我得到一個服務器錯誤,我猜腳本沒有執行。

+0

那麼,一種方法是隻給系統提供相同比例的圖像。在調整大小之前,您可以通過做一些裁剪來自動執行此操作,但裁剪區域絕不可能是理想的裁剪區域。這就是爲什麼像Facebook這樣的網站提供裁剪對話框的原因。 [JCrop](http://deepliquid.com/content/Jcrop.html)可以幫助你做到這一點,但實現起來要比簡單的調整大得多。 –

+1

我最好使用這個:http://net.tutsplus.com/tutorials/php/image-resizing-made-easy-with-php/爲所有圖像調整我的大小,而不是使用CI類? – thejoker

回答

1

您的問題是$config['maintain_ratio'] = TRUE;聲明。這告訴系統將寬高比例保持爲與新寬度或高度的比率(基於哪個是較大值)。

因此,如果圖像是縱向,它將調整到100px高,但寬度將與原始圖像比例成比例。

如果你想要的形象是100像素X 100像素,那麼你需要設置:

$config['maintain_ratio'] = FALSE; 
+0

這種方法的問題,這將意味着圖像將會失真,因爲它只會將它們全部調整到100x100而沒有正確裁剪它們,然後按比例調整比例 – thejoker

+0

好的,那麼您可以先將圖像裁剪成方形圖像,然後調整。看看這裏:http://stackoverflow.com/a/3327424/844726 – swatkins

+0

好吧我想試試這個像這樣 - 看到我的問題的其他答案如下: – thejoker

0

對於大型網站,如BBC,他們必須手工裁剪/調整圖像本身,我想。 用CodeIgniter,我們可以設置這樣的:

$config_resize['maintain_ratio'] = TRUE; 
$config_resize['master_dim'] = 'height'; 
$config_resize['quality'] = "100%"; 
$config_resize['source_image'] = './' . $user_upload_path . $file_name; 

$config_resize['height'] = 64; 
$config_resize['width'] = 1; 

固定拇指高度和保持高寬比,this post示出了用於調整例如和演示。