Обработка изображений CodeIgniter (изменение размера и водяной знак)

Я надеюсь, что кто-то может мне помочь. Я пытаюсь загрузить изображение через форму, изменить его размер до 600 пикселей, создать миниатюру размером 100 пикселей, а затем добавить изображение водяного знака к версии 600 пикселей, но приведенный ниже код просто создает две версии исходного изображения.

$image = $this->upload->data();
$resized = base_url()."images/artwork/".$image['orig_name'];

//Create 600px version
$config = array();
$config['source_image'] = $resized;
$config['image_library'] = 'gd2';
$config['maintain_ratio'] = TRUE;
$config['width'] = 600;
$config['height'] = 600;
$this->image_lib->initialize($config);
$this->image_lib->resize();
$this->image_lib->clear();
unset($config);

//Add watermark to 600px version
$config = array();
$config['source_image'] = $resized;
$config['image_library'] = 'gd2';
$config['wm_type'] = 'overlay';
$config['wm_overlay_path'] = './images/logo.gif';
$config['wm_vrt_alignment'] = 'middle';
$config['wm_hor_alignment'] = 'center';
$this->image_lib->initialize($config);
$this->image_lib->watermark();
$this->image_lib->clear();
unset($config);

//Create 100px unwatermarked thumbnail
$config = array();
$config['source_image'] = $resized;
$config['image_library'] = 'gd2';
$config['maintain_ratio'] = TRUE;
$config['width'] = 100;
$config['height'] = 100;
$this->image_lib->initialize($config);
$this->image_lib->resize();
$this->image_lib->clear();
unset($config);
$thumbnail = base_url()."images/artwork/".$image['raw_name']."".$image['file_ext'];

echo "<a href=\"".$resized."\"><img src=\"".$thumbnail."\" /></a>";

person GKR    schedule 09.02.2010    source источник


Ответы (2)


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

//Create 100px unwatermarked thumbnail
$config = array();
$config['source_image'] = $resized;
$config['image_library'] = 'gd2';
$config['maintain_ratio'] = TRUE;
$config['create_thumb'] = TRUE;   // Tells it to make a copy called *_thumb.*
$config['width'] = 100;
$config['height'] = 100;
$this->image_lib->initialize($config);
$this->image_lib->resize();
$this->image_lib->clear();
unset($config);

Вы также можете добавить код проверки ошибок, чтобы знать, если он не работает и почему:

if ( ! $this->image_lib->resize())
{
    echo $this->image_lib->display_errors();
}
person Jeff B    schedule 09.02.2010

Использование Image Moo может помочь в следующем примере: http://ellislab.com/forums/viewthread/162030/#778258

person Trae    schedule 04.06.2013