2017-01-03 3 views
0

У меня возникла проблема при попытке создать миниатюры с помощью цикла foreach. Я использовал класс встроенного CI image_lib, чтобы вырезать изображение, но он создаст только миниатюру 1-го изображения, для остальных изображений они никогда не будут разрезаны. Вот мой код:Как создать несколько эскизов с помощью Codeigniter

$source[0] = "image/catalog/a.jpg"; 
    $source[1] = "image/catalog/b.jpg"; 
    $source[2] = "image/catalog/c.jpg"; 


    foreach ($source as $image) { 
     $config['image_library'] = 'gd2'; 
     $config['source_image'] = $image; 
     $config['create_thumb'] = TRUE; 
     $config['maintain_ratio'] = TRUE; 
     $config['width'] = 100; 
     $config['height'] = 100; 

     $file = basename($image); 
     $info = pathinfo($file); 
     $file_name = basename($file,'.'.$info['extension']); 
     $config['new_image'] = '/Applications/XAMPP/xamppfiles/htdocs/zhiyuan/image/cache/' . basename($file_name) . '-' . $config['width'] . 'x' . $config['height'] . '.png'; 

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

ответ

0

Проблема заключается в том, что я пытался загрузить библиотеку несколько раз, но кажется, что будет загружать только в первый раз. Чтобы отрезать второе изображение, мне нужно повторно инициализировать конфигурацию. Вот код после исправления:

$source[0] = "image/catalog/a.jpg"; 
$source[1] = "image/catalog/b.jpg"; 
$source[2] = "image/catalog/c.jpg"; 
$this->load->library('image_lib'); 

foreach ($source as $image) { 
    $config['image_library'] = 'gd2'; 
    $config['source_image'] = $image; 
    $config['create_thumb'] = TRUE; 
    $config['maintain_ratio'] = TRUE; 
    $config['width'] = 100; 
    $config['height'] = 100; 

    $file = basename($image); 
    $info = pathinfo($file); 
    $file_name = basename($file,'.'.$info['extension']); 
    $config['new_image'] = '/Applications/XAMPP/xamppfiles/htdocs/zhiyuan/image/cache/' . basename($file_name) . '-' . $config['width'] . 'x' . $config['height'] . '.png'; 

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