codeigniter - 如何使用 CodeIgniter 填充图像?

标签 codeigniter image-manipulation

我的用户正在上传任意尺寸 XX x YY 的图像。我想找到更大的尺寸并将图像缩小到 250x250 的正方形,并添加透明填充以弥补差异。有什么办法可以用 CI 的图像库来实现这一点?

最佳答案

试试这个:

$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();

有关详细信息,请参阅 CodeIgniter API 中的 Image Manipulation Class

尽管老实说,我觉得 CI 的图像处理库不够用。它不是很灵活,对于重复或组合操作(如上面的操作)不是很快,并且它使用了一种糟糕的语法(对于某些类型的应用程序可能会派上用场,但我个人更喜欢类似 PHP Thumb 的语法):


事实上,我最近为 PHP Thumb ( download ) 整理了一个简单的包装器库以与 CodeIgniter 一起使用,并且效果非常好。使用 PHP Thumb 库而不是 CodeIgniter 自己的库,您可以像这样完成工作:

$this->load->library('phpthumb_lib');
$thumb = phpthumb_lib::create('/path/to/image/mypic.jpg');
$thumb->adaptiveResize(250, 250);
$thumb->save();

有关 PHP Thumb's GitHub page 的更多详细信息。

只是这不会用透明像素填充图像(我认为这是一种不好的做法),它只是调整图像大小并裁剪图像以适应整个 250x250 像素区域而不拉伸(stretch)图像。

或者,您可以调整图像大小以适合 250x250 像素框(通过使用 resize 而不是 adaptiveResize),并且然后将图像放入 250x250px DIV 容器中。我猜这可能是您想要的解决方案。

关于codeigniter - 如何使用 CodeIgniter 填充图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2394140/

相关文章:

mysql - 与加入 codeigniter mysql 不同

javascript - 如何根据另一个 TD 元素更改 JQuery Datatables TD 元素中的图标?

ruby - 我如何使用 ImageMagick 检测水平黑线?

c# - 如何使用 imagemagick 调整图像大小?

php - CodeIgniter/PHP : How to get URI in . php查看页面

php - 当 php session 超时时执行一些事件

php - 如何使用foreach在表中显示左连接选择查询的记录?

javascript - 使用 AJAX 在 codeigniter 中更新表单模态 Bootstrap

java - J2ME Java - 如何获取图像的一部分并将其放大

javascript - 当我将缩略图附加到 DIV 时,如何以特定模式定位缩略图?