如何在最大宽度和最大高度范围内调整图像大小?

时间:2013-04-29 12:13:50

标签: codeigniter image-processing

我有CI图片上传表单,我想确保我上传的图片适合给定的矩形。如果它们太大了 - 我想减小它们的尺寸。如果它们适合该矩形 - 我不需要调整大小。

我知道CI支持max-height和max-width(作为对上传图像的大小的限制),并且它支持调整大小,但我找不到如何将图像调整为设置的最大高度和最大宽度(同时保持比率)。

4 个答案:

答案 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)

您需要计算您想要调整大小的图像的高度和宽度。例如:

  1. 假设您的输入图像为1200x1000,并且您希望调整后的图像为300x200。
  2. 查找尺寸比率1200/1000 = 1.2和300/200 = 1.5。
  3. 如果原始比率大于要匹配宽度的目标调整大小比例,则需要计算高度。在这种情况下,我们希望匹配高度。
  4. 找到比例因子以将图像更改为目标大小。比例因子是200/1000 = 0.2。
  5. 使用比例因子查找按0.2(1200 * 0.2和1000 * 0.2)= 240x200缩放的新尺寸1200x1000。
  6. 将图像大小调整为240x200,因为它最适合300x200的盒子。
  7. 从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