codeigniter 如何调整图像大小以适合最大宽度和最大高度?

fnatzsnv  于 2022-12-07  发布在  其他
关注(0)|答案(4)|浏览(158)

我有一个CI图像上传表单,我想确保上传的图像适合给定的矩形。如果图像太大,我想缩小它们。如果它们适合该矩形,我不需要调整大小。
我知道CI支持最大高度和最大宽度(作为上传图像大小的限制),它支持调整大小,但我找不到如何调整图像大小到一个设定的最大高度和最大宽度(同时保持比例)。

dluptydi

dluptydi1#

嗯,这很容易,正如预期从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())  
 }
ut6juiuv

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

bpsygsoo3#

处理此问题的更好方法可能是通过CSS(与CI图像操作库结合使用以调整大小):

.media img{
        max-width:100px;
        max-height:100px;
    }

相关问题