2017-01-03 2 views
0

foreachループを使用してサムネイルを作成しようとすると問題が発生します。私は、CIの組み込みクラスimage_libを使ってイメージをカットしましたが、最初のイメージのサムネイルを作成します。残りのイメージは、決してカットされません。ここに私のコードは次のとおりです。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

問題は、私は図書館に数回をロードしようとしたということですが、それは最初だけをロードするように思えます。 2番目の画像をカットするために、私は設定を再初期化する必要があります。修正後のコードは次のとおりです。

$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(); 
} 
関連する問題