使用 CodeIgniter 處理縮圖

codeigniter 也有方便的 lib 處理圖片縮圖的部分,簡單的範例如下。

  1. $config['image_library'] = 'gd2';   
  2. $config['source_image'] = '/path/to/image/mypic.jpg';   
  3. $config['create_thumb'] = TRUE;   
  4. $config['maintain_ratio'] = TRUE;   
  5. $config['width'] = 1024;   
  6. $config['height'] = 1024;   
  7.   
  8. $this->load->library('image_lib'$config);   
  9.   
  10. $this->image_lib->resize();  

上頭的程式碼告訴 image_resize 函式庫去找一個位於 source_image 資料夾裡名叫 mypic.jpg 的圖片,然後呼叫 GD2 image_library 影像函式庫來創建一張尺寸為 1024 X 1024 像素的縮圖,有設定 maintain_ratio 選項時,縮圖會在維持原本的長寬比例下,會盡可能的接近 width 跟 height 的像素尺寸大小,所以這個可以用來設定照片的最長邊,可以搭配伺服器抓到的圖片尺寸來判斷是否要縮圖,而縮圖的檔名會命名為 mypic_thumb.jpg。

若要一次上傳多張照片,就需要 reset image_lib。
  1. $this->load->library('image_lib');   
  2. $this->image_lib->clear();   
  3. $this->image_lib->initialize($config);   
  4. $this->image_lib->resize();   
  5. if ( ! $this->image_lib->resize())   
  6. {   
  7.     echo $this->image_lib->display_errors();   
  8.     return;   
  9. }  

檢查錯誤的話使用 $this->image_lib->display_errors();

留言