我需要制作一张加载图片的两张图片。此图像必须具有固定宽度, - 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
答案 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;