2013-07-07 8 views
2

В основном я пытаюсь изменить размер изображения на два изображения разных размеров. Однако я только могу изменить размер первого featured_$filename Я не могу изменить размер thumb_$filename.Изменение размера изображения для Codeigniter Изменение размера только одного изображения

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

$this->resizeImage($imagePath, $file['upload_data']['file_name']); 


    $this->resizeThumb($imagePath, $file['upload_data']['filename']); 

public function resizeImage($imagePath, $filename){ 
     $config['image_library'] = 'gd2'; 
     $config['source_image'] = $imagePath; 
     $config['create_thumb'] = FALSE; 
     $config['new_image'] = 'featured_'.$filename; 
     $config['maintain_ratio'] = TRUE; 
     $config['width']  = 570; 
     $config['height'] = 372; 
     $this->load->library('image_lib', $config); 
     $this->image_lib->resize(); 
     $this->image_lib->clear(); 


    } 

    public function resizeThumb($imagePath, $filename){ 
     $config['image_library'] = 'gd2'; 
     $config['source_image'] = $imagePath; 
     $config['create_thumb'] = FALSE; 
     $config['new_image'] = 'thumb_'.$filename; 
     $config['maintain_ratio'] = TRUE; 
     $config['width']  = 180; 
     $config['height'] = 135; 
     $this->load->library('image_lib', $config); 
     $this->image_lib->resize(); 
     $this->image_lib->clear(); 


    } 

ответ

2

библиотека привет загрузки первой и использовать $this->image_lib->initialize($config) для передачи конфигурации, а также в new_image пути конфигурации прохода с новым именем изображения.

$this->load->library('image_lib');  
$config['new_image'] = 'image_dir/thumb_'.$filename 
//ALL your other configs 
$this->image_lib->initialize($config) 
4

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

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

/* size 64*72 for comments */ 
$configThumb = array(); 
$configThumb['image_library'] = 'gd2'; 
$configThumb['create_thumb'] = TRUE; 
$configThumb['new_image']  = './profile_images/thumbs/'; 
$configThumb['maintain_ratio'] = TRUE; 
$configThumb['width']   = 64; 
$configThumb['height']   = 72; 
$configThumb['thumb_marker'] = ""; 
//$this->load->library('image_lib'); 
/* size 64*72 for comments */ 

/* size 167*167 for profile page */ 
$configThumbMedium = array(); 
$configThumbMedium['image_library'] = 'gd2'; 
$configThumbMedium['create_thumb'] = TRUE; 
$configThumbMedium['new_image']  = './profile_images/medium/'; 
$configThumbMedium['maintain_ratio'] = TRUE; 
$configThumbMedium['width']   = 167; 
$configThumbMedium['height']   = 167; 
$configThumbMedium['thumb_marker'] = ""; 
/* size 167*167 for profile page */ 

if(!$this->upload->do_upload('image')){ 
    return 0; 
} 

$uploadedDetails = $this->upload->data(); 
if($uploadedDetails['is_image'] == 1){ 
    $this->image_lib->initialize($configThumb); 
    $this->image_lib->resize(); 
    $this->image_lib->initialize($configThumbMedium); 
    $this->image_lib->resize(); 
} 

Надеюсь, что это поможет.

+0

Красиво отформатированный ответ. Я отвечу, как только я проверю это. Благодарю . – prakashchhetri

+0

Это сработало для вас? –

Смежные вопросы