我的用户上传的图片大小为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. 边距和填充使图像变大