我有一个 CI 图像上传表单,我想确保我上传的图像适合给定的矩形。如果它们太大 - 我想缩小它们的尺寸。如果它们适合该矩形 - 我不需要调整大小。
我知道 CI 支持最大高度和最大宽度(作为上传图像大小的限制),并且它支持调整大小,但我找不到如何将图像调整为设置的最大高度和最大-宽度(同时保持比例)。
我有一个 CI 图像上传表单,我想确保我上传的图像适合给定的矩形。如果它们太大 - 我想缩小它们的尺寸。如果它们适合该矩形 - 我不需要调整大小。
我知道 CI 支持最大高度和最大宽度(作为上传图像大小的限制),并且它支持调整大小,但我找不到如何将图像调整为设置的最大高度和最大-宽度(同时保持比例)。
好吧,正如 CI 所预期的那样,这很容易(-:
使用时$this->image_lib->resize()
,您设置所需的宽度和高度。如果您还将maintain_ratio 设置为true,则新图像的大小将调整为最接近您设置的宽度和高度的值,同时保留原始纵横比。
所以这是我上传图片后使用的代码:
$file_data = $this->upload->data();
$max_height = 115;
$max_width = 225;
if ($file_data['image_width']>$max_width || $file_data['image_height']>$max_height)
{
$configResize = array(
'source_image' => $file_data['full_path'],
'width' => $max_width,
'height' => $max_height,
'maintain_ratio' => TRUE
);
$this->load->library('image_lib',$configResize);
$this->image_lib->resize())
}
您需要计算您希望调整大小的图像的高度和宽度。例如:
取自 Silviu G 提供的网站http://ellislab.com/codeigniter/user-guide/libraries/image_lib.html
$this->load->library('image_lib');
$config['image_library'] = 'gd2';
$config['source_image'] = 'originalImage.jpg';
$config['create_thumb'] = TRUE;
$config['width'] = 240;
$config['height'] = 200;
$this->load->library('image_lib', $config);
$this->image_lib->resize();
处理这个问题的更好方法可能是通过 CSS(结合 CI 图像处理库来调整大小):
.media img{
max-width:100px;
max-height:100px;
}
使用CI的图像处理类