我有一个CI图像上传表单,我想确保上传的图像适合给定的矩形。如果图像太大,我想缩小它们。如果它们适合该矩形,我不需要调整大小。我知道CI支持最大高度和最大宽度(作为上传图像大小的限制),它支持调整大小,但我找不到如何调整图像大小到一个设定的最大高度和最大宽度(同时保持比例)。
dluptydi1#
嗯,这很容易,正如预期从CI(-:使用$this->image_lib->resize()时,您可以设定所需的长度和高度。如果您也将maintain_ratio设定为true,新影像会调整为最接近您设定的长度和高度值,同时保留原始的长宽比。这是我上传图片后使用的代码:
$this->image_lib->resize()
$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()) }
ut6juiuv2#
您需要计算调整大小后的图像的高度和宽度。例如:1.假设输入图像为1200 x1000,而您希望调整大小后的图像为300 x200。1.求出大小比率1200/1000=1.2和300/200=1.5。1.如果原始比例大于目标调整大小比例,则需要匹配宽度,否则需要计算高度。在这种情况下,我们需要匹配高度。1.找出将影像变更为目的大小的比例系数。比例系数为200/1000=0.2。1.使用比例系数来寻找以0.2(12000.2和10000.2)缩放的新大小1200 x1000 = 240 x200。1.将图像大小调整为240 x200,因为这是最适合300 x200框的大小。摘自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();
bpsygsoo3#
处理此问题的更好方法可能是通过CSS(与CI图像操作库结合使用以调整大小):
.media img{ max-width:100px; max-height:100px; }
gzszwxb44#
使用Image Manipulation Class表单CI
4条答案
按热度按时间dluptydi1#
嗯,这很容易,正如预期从CI(-:
使用
$this->image_lib->resize()
时,您可以设定所需的长度和高度。如果您也将maintain_ratio设定为true,新影像会调整为最接近您设定的长度和高度值,同时保留原始的长宽比。这是我上传图片后使用的代码:
ut6juiuv2#
您需要计算调整大小后的图像的高度和宽度。例如:
1.假设输入图像为1200 x1000,而您希望调整大小后的图像为300 x200。
1.求出大小比率1200/1000=1.2和300/200=1.5。
1.如果原始比例大于目标调整大小比例,则需要匹配宽度,否则需要计算高度。在这种情况下,我们需要匹配高度。
1.找出将影像变更为目的大小的比例系数。比例系数为200/1000=0.2。
1.使用比例系数来寻找以0.2(12000.2和10000.2)缩放的新大小1200 x1000 = 240 x200。
1.将图像大小调整为240 x200,因为这是最适合300 x200框的大小。
摘自Silviu G提供的网站http://ellislab.com/codeigniter/user-guide/libraries/image_lib.html
bpsygsoo3#
处理此问题的更好方法可能是通过CSS(与CI图像操作库结合使用以调整大小):
gzszwxb44#
使用Image Manipulation Class表单CI