CodeIgniter中的多个大小调整

NiL*_*iLL 6 php codeigniter

我需要制作一张加载图片的两张图片.此图像必须具有固定宽度,-180和300像素.

在我目前的结果的底部.此功能可以调整大小并仅创建两个图像中的一个.每个人都失败了第二张图片,我整天都在尝试,但我找不到理由.需要帮忙.

$this->_resize($data['upload_data']['file_name'], 300);
$this->_resize($data['upload_data']['file_name'], 180);
private function _resize($file_name, $size) {
            $config['image_library'] = 'gd2';
            $config['source_image'] = 'img/upload/' . $file_name;
            $config['dest_image'] = base_url() . 'img/';
            $config['create_thumb'] = TRUE;
            $config['thumb_marker'] = '_' . $size;
            $config['maintain_ratio'] = FALSE;
            $config['width'] = $size;
            $config['height'] = $size;
            $this->load->library('image_lib', $config);
            $result = $this->image_lib->resize();

            $this->image_lib->clear();
            return;
        }
Run Code Online (Sandbox Code Playgroud)

我使用的是CodeIgniter 2.02

小智 15

不要多次加载image_lib.在autoload库中添加image_lib并进行更改

$this->load->library('image_lib', $config);
Run Code Online (Sandbox Code Playgroud)

$this->image_lib->initialize($config);
Run Code Online (Sandbox Code Playgroud)


Iva*_*nić 5

从用户指南中,这可以帮助您

一个好的做法是有条件地使用处理函数,在失败时显示错误,如下所示:

if ( ! $this->image_lib->resize())
{
    echo $this->image_lib->display_errors();
}
Run Code Online (Sandbox Code Playgroud)


Dmi*_*eev 1

尼尔

认为发生该问题是因为在第一次运行时您的脚本将初始文件移动到另一个文件夹。尝试使用:

$config['new_image'] = base_url() . 'img/';
Run Code Online (Sandbox Code Playgroud)

代替

$config['dest_image'] = base_url() . 'img/';
Run Code Online (Sandbox Code Playgroud)