我有CI图片上传表单,我想确保我上传的图片适合给定的矩形。如果它们太大了 - 我想减小它们的尺寸。如果它们适合该矩形 - 我不需要调整大小。
我知道CI支持max-height和max-width(作为对上传图像的大小的限制),并且它支持调整大小,但我找不到如何将图像调整为设置的最大高度和最大宽度(同时保持比率)。
答案 0 :(得分:4)
嗯,这很容易,正如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())
}
答案 1 :(得分:2)
您需要计算您想要调整大小的图像的高度和宽度。例如:
从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();
答案 2 :(得分:1)
或许更好的方法是通过CSS(与CI图像处理库一起调整大小):
.media img{
max-width:100px;
max-height:100px;
}
答案 3 :(得分:0)
使用Image Manipulation Class表单CI