【问题标题】:How to resize multiple image using img_library in codeigniter [duplicate]如何在codeigniter中使用img_library调整多个图像的大小[重复]
【发布时间】:2013-04-07 01:53:28
【问题描述】:

我上传了一张图片,我想将其重新调整为 200x200、70x70、40x40 的大小,每次调整大小时,它只会给我 2 张原始图片和 1 张拇指图片 200x200。我该怎么做呢?这是我的代码:

public function resize($path, $file)
{
    $data = array(200, 70, 40);
    foreach($data as $d) : 
    $config['image_library']    = 'gd2';
    $config['source_image']     = $path;
    $config['create_thumb']     = true;
    $config['maintain_ratio']   = true;
    $config['width']            = $d;
    $config['height']           = $d;   
    $config['new_image']        = './uploads/' . $d . $file;

    $this->load->library('image_lib', $config);
    $this->image_lib->resize();
    $this->image_lib->clear();
    endforeach;
}   

【问题讨论】:

  • 我知道这不是您问题的答案,但您可以使用 timbthumb.php 类动态调整图像大小。我用这个很好用,上传时不需要处理

标签: php html mysql css codeigniter


【解决方案1】:

我建议在循环中调用以下代码:

$this->image_lib->initialize($config);

我认为可能发生的情况是,当您加载库时,初始化程序只被调用一次。您需要清除旧参数,并在每次要进行更改时调用初始化程序。

另外,我只会在视图文件中使用简码。坚持使用类文件中的标准大括号。

例如。循环代码:

foreach($data as $d)
{
  // statements to loop through here
}

把它们放在一起......

public function resize($path, $file)
{
    $sizes = array(200, 70, 40);

    $this->load->library('image_lib');

    foreach($sizes as $size)
    { 
       $config['image_library']    = 'gd2';
       $config['source_image']     = $path;
       $config['create_thumb']     = true;
       $config['maintain_ratio']   = true;
       $config['width']            = $size;
       $config['height']           = $size;   
       $config['new_image']        = './uploads/' . $size . $file;

       $this->image_lib->clear();
       $this->image_lib->initialize($config);
       $this->image_lib->resize();
    }
}

【讨论】:

  • 谢谢你,我刚刚才知道。不过还是谢谢你回复了。现在我知道了=)
  • 很高兴你成功了。
猜你喜欢
  • 1970-01-01
  • 2012-06-17
  • 2019-10-31
  • 1970-01-01
  • 2011-04-26
  • 2018-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多