作者liaosankai (低溫烘焙)
看板PHP
標題Re: [請益] CI的縮圖
時間Thu Mar 8 10:56:40 2012
※ 引述《rocairforce (拾貳)》之銘言:
: PHP 5.X
: CI 2.1.0
: 我為了要讓縮圖方便點,寫了個helper
: function my_manipulation($data=array()){
: $CI =& get_instance();
: $img_resize_config['image_library'] = 'gd2';
: $img_resize_config['maintain_ratio'] = TRUE;
: $img_resize_config['source_image'] = $data['source_image'];
: $img_resize_config['new_image'] = $data['new_image'];
: $img_resize_config['width'] = $data['width'];
: $img_resize_config['height'] = $data['height'];
: $CI->load->library('image_lib',$img_resize_config);
: $CI->image_lib->resize();
: }
: 可以很順利的縮圖沒錯,不過都只能縮一次,假設我要做三種不同大小的縮圖
: 分別是 500*500、300*300、100*100
: 可是只有第一個會順利縮圖,其它都沒反應,我試著在每次都echo個東西出來,
: 確定是有再跑的,不過結果還是一樣,$CI->image_lib->clear();也用過了。
: 有誰能幫幫我嗎???
: THX
把這一段:
$CI->load->library('image_lib',$img_resize_config);
$CI->image_lib->resize();
改成:
$CI->load->library("image_lib");
$CI->load->initialize($img_resize_config);
$CI->image_lib->resize();
$CI->image_lib->clear();
原因:
image_lib在第一次load之後,就不會重複再做load的動作了
所以你原本的寫法,只會做第一次,後面就不會再執行了
題外話:
CI的image_lib的rotate()沒辦法直接傳任意角度
CI的image_lib的image_mirror_gd()的作法效能很差
--
歡迎來我的網誌看看
@
http://liaosankai.pixnet.net/blog
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.170.28.55
※ 編輯: liaosankai 來自: 118.170.28.55 (03/08 10:57)
※ 編輯: liaosankai 來自: 118.170.28.55 (03/08 10:58)
推 kusoayan:推 學到新東西 03/08 15:51
推 rocairforce:是低溫烘培耶,太神威了,請受我一拜 03/08 23:38
推 rocairforce:發現還是不行,應該是我的問題吧,稍微修改了一下 03/11 10:20
→ rocairforce:$CI->load->initialize(); 03/11 10:20
→ rocairforce:$CI->load->library('image_lib',$img_resize_config) 03/11 10:21
→ rocairforce:加上第一行是暫時解決了,有空再來研究 03/11 10:21
推 hsinyu716:請問原始圖大小是不是有限制?我也正好在縮圖 但原始圖 11/10 13:21
→ hsinyu716:大小3648 * 2736 3m多 頗大的=-= 是不是無法呢? 感謝 11/10 13:22