我的用戶上傳的圖片大小爲XX x YY。我想找到更大的尺寸並將圖像縮小到250x250的正方形,並添加透明填充以彌補差異。有沒有什麼辦法可以用CI的Image Lib完成這個任務?如何使用CodeIgniter填充圖像?
2
A
回答
8
試試這個:
$config['image_library'] = 'gd2';
$config['source_image'] = '/path/to/image/mypic.jpg';
$config['maintain_ratio'] = TRUE;
$config['width'] = 250;
$config['height'] = 250;
$this->load->library('image_lib', $config);
$this->image_lib->resize();
$config['image_library'] = 'gd2';
$config['source_image'] = '/path/to/image/mypic.jpg';
$config['maintain_ratio'] = FALSE;
$config['width'] = 250;
$config['height'] = 250;
$this->image_lib->initialize($config);
$this->image_lib->crop();
有關詳細信息,從笨API
看到Image Manipulation Class雖然相當誠實,我不覺得CI的圖像處理庫是足夠的。這是不是很靈活,它不是重複或組合動作(像上面的)速度非常快,它使用一個窮兇極惡的語法(可能派上用場的某些類型的應用程序,但我個人更喜歡像PHP Thumb ):
事實上,我最近整理了PHP拇指(download)使用CodeIgniter使用一個簡單的包裝庫,和它的作品驚人。使用PHP拇指庫,而不是CodeIgniter的自己,你可以把工作像這樣做:在PHP Thumb's GitHub page
$this->load->library('phpthumb_lib');
$thumb = phpthumb_lib::create('/path/to/image/mypic.jpg');
$thumb->adaptiveResize(250, 250);
$thumb->save();
更多細節。
只有這並不墊透明像素(我會考慮一個不好的做法)的圖像,它只是調整大小和裁剪圖像,以適應整個250x250的像素面積不拉伸的圖像。
或者,你可以把圖像尺寸調整到適合裏面一個250x250的像素盒(通過使用resize
而不是adaptiveResize
),然後將250x250px DIV容器裏面的圖片。我猜這可能是你想要的解決方案。
1
我不裁剪圖像,而把它放在一個div的背景。這是我的代碼。
1)裏面的幫手的地方這一點。
function getSmallerDimension($img_path, $width, $height) {
list($wid, $hei, $type, $attr)= getimagesize($img_path);
$ratio = $wid/$hei;
if($height < $width/$ratio) {
return 'width';
}
else if($width < $height * $ratio) {
return 'height';
}
else {
return 'auto';
}
}
2)使用它來調整大小。
$config['image_library'] = 'gd2';
$config['source_image'] = 'source-path/source.jpg';
$config['create_thumb'] = true;
$config['thumb_marker'] = '-thumb';
$config['maintain_ratio'] = true;
$config['width'] = 250;
$config['height'] = 250;
$config['master_dim'] = getSmallerDimension('source-path/source.jpg', 250, 250);
$this->load->library('image_lib', $config);
$this->image_lib->resize();
相關問題
- 1. 如何使圖像填充JLabel BorderLayout.CENTER
- 2. 如何使用圖像作爲使用opencv填充圖案
- 3. 如何用圖像填充單元格
- 4. IE7圖像填充
- 5. 填充的圖像
- 6. JavaFX圖像填充
- 7. 使用圖像填充react-select
- 8. XFillPolygon:Transpent使用像素圖填充輸出?
- 9. 使用PINRemoteImage填充CollectionViewCell圖像
- 10. 使用LINQ to SQL來填充圖像
- 11. 使用資源圖像填充數組
- 12. 如何讓按鈕圖像填充它?
- 13. 如何使用pngcs中的像素填充位圖對象?
- 14. 如何插入使用fabricjs在圖像中填充顏色
- 15. 如何使用Android上的圖像填充屏幕
- 16. 如何在聚焦時使用圖像填充LWUIT按鈕?
- 17. Heroku如何使用file.open和rake填充圖像carrierwave
- 18. 如何使用透明填充縮放Graphics2D圖像
- 19. 我如何使用android中的圖像填充圖像數據庫?
- 20. 如何使用圖像的src爲所有圖像的src填充alt字段
- 21. 圖像處理洪水填充圖像
- 22. 如何使用xlsxwriter填充
- 23. drupal_execute填充圖像字段
- 24. Java的填充圖像
- 25. HTML/CSS填充和圖像
- 26. asp.net mvc jquery填充圖像
- 27. CSS圖像網格填充
- 28. Flex 4圖像填充
- 29. 初始填充圖像UIImagePickerController
- 30. 邊距和填充使圖像變大