我的用戶上傳的圖片大小爲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. 如何填充SVG圖像
- 2. 如何使圖像填充JLabel BorderLayout.CENTER
- 3. 如何使用圖像作爲使用opencv填充圖案
- 4. 如何用圖像填充單元格
- 5. 如何用圖像填充頁面?
- 6. 填充圖像
- 7. 如何使用圖像填充OpenLayers中的圖層?
- 8. 用css填充圖像
- 9. 用圖像填充頁面
- 10. 用processing.js填充圖像
- 11. IE7圖像填充
- 12. JavaFX圖像填充
- 13. 填充的圖像
- 14. 如何讓父div的圖像填充填充?
- 15. 使用資源圖像填充數組
- 16. 使用LINQ to SQL來填充圖像
- 17. 填充在wxpython中使用的圖像
- 18. 使用Floodfill填充ASCII圖像
- 19. 使用圖像的矩形填充
- 20. 使用圖像填充多個ImageViews
- 21. 使用PINRemoteImage填充CollectionViewCell圖像
- 22. 使圖像區域的無用填充
- 23. XFillPolygon:Transpent使用像素圖填充輸出?
- 24. UIImage填充肖像圖像
- 25. HorizontalListView如何填充圖像數組?
- 26. 如何在C++中「填充」圖像
- 27. 如何讓按鈕圖像填充它?
- 28. Codeigniter:使用jquery填充表格
- 29. 如何使用ggplot填充geom_area()圖?
- 30. 如何使用圖像和文本填充xaml組合框