如何在codeigniter中使用img_library调整多个图像的大小[重复]

Posted

技术标签:

【中文标题】如何在codeigniter中使用img_library调整多个图像的大小[重复]【英文标题】:How to resize multiple image using img_library in codeigniter [duplicate] 【发布时间】: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 类动态调整图像大小。我用这个很好用,上传时不需要处理 【参考方案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();
    

【讨论】:

谢谢你,我刚刚才知道。不过还是谢谢你回复了。现在我知道了=) 很高兴你成功了。

以上是关于如何在codeigniter中使用img_library调整多个图像的大小[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 CodeIgniter 的库中使用 session?

如何在 Codeigniter 中使用数据表 [关闭]

如何在登录系统中使用会话并在codeigniter中实现注销

如何在 codeigniter 代码中使用两个或多个存储过程?

如何使用 Codeigniter 删除上传的文件?

如何使用codeigniter 4框架在mysql数据库中插入多行?