CodeIgniter中的多个大小调整

时间:2011-07-03 18:20:40

标签: 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;
        }

我正在使用CodeIgniter 2.02

4 个答案:

答案 0 :(得分:15)

多次加载image_lib。在autoload libs中添加image_lib并更改

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

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

答案 1 :(得分:5)

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

  

一个好的做法是使用处理   有条件地发挥作用   失败时的错误,如下:

if ( ! $this->image_lib->resize())
{
    echo $this->image_lib->display_errors();
}

答案 2 :(得分:1)

Nill

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

$config['new_image'] = base_url() . 'img/';

而不是

$config['dest_image'] = base_url() . 'img/';

答案 3 :(得分:1)

我发现自己遇到了这个问题。在我的例子中,我把图像源和new_image放在没有base_url或REAL_PATH:

的情况下
public function create_thumbnail($file_name='2012_02_23_15_06_00_1.jpg'){
    $this->layout = false;
    $image_url = PATH_TO_IMAGE_ARTICLE.DIRECTORY_SEPARATOR;
    $config['image_library'] = 'gd2';
    $config['source_image'] = 'assets/img/content/article/'.$file_name;
    $config['create_thumb'] = FALSE;
    $config['maintain_ratio'] = TRUE;
    $config['width'] = 210;
    $config['height'] = 160;    
    $config['new_image'] = 'assets/img/content/article/thumb/thumb_' .  $file_name;

    $this->load->library('image_lib', $config);
    if(!$this->image_lib->resize())
    {
        echo $this->image_lib->display_errors();exit;
    }
    return TRUE;
}

请参阅? 你没有把

$config['new_image'] = base_url().'assets/img/content/article/thumb/thumb_' .  $file_name;

$config['new_image'] = 'assets/img/content/article/thumb/thumb_' .  $file_name;