Водяной знак и миниатюра - Codeigniter - PullRequest
1 голос
/ 30 июня 2010

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

 $image = $data['json']->{'file_name'};
   $data['account'] = $account;

   $this->_insertintodb($account, $image);

   //Settings to create thumbnail
   $config['source_image'] = $data['json']->{'file_path'};
   $config['create_thumb'] = TRUE;
   $config['maintain_ratio'] = TRUE;
   $config['width'] = 125;
   $config['height'] = 125;
   $this->image_lib->initialize($config);

   if($this->image_lib->resize()) {
    $prep_thumb = explode('.', $image);
    $thumb = $prep_thumb[0] . '_thumb.' . $prep_thumb[1];
    $this->_moveimage($thumb, $account, TRUE);
   }

   $this->image_lib->clear();

   //Settings to create watermark overlay
   $config = array();
   $config['source_image'] = $data['json']->{'file_path'};
   $config['wm_type'] = 'overlay';
   $config['wm_overlay_path'] = getcwd() . '/design/overlay_watermark_transparent.png';
   $config['wm_vrt_alignment'] = 'middle';
   $config['wm_hor_alignment'] = 'center';

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

   if(!$this->image_lib->watermark()){
    echo $this->image_lib->display_errors();
   }

   $this->image_lib->clear();

Любые идеи о том, почему это не такработает правильно?

Ответы [ 3 ]

1 голос
/ 30 июня 2010

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

if(!$this->image_lib->watermark()){
    echo $this->image_lib->display_errors();
}

Либо эти ошибки могут помочь вам больше, чем мы, или мы можем помочь вам больше после того, как вы предоставите нам их.

0 голосов
/ 11 февраля 2015

Это работает для меня:

/**
 * public function wmimg_thumb($source_image)
 * 
 * Creating water marked - thumb
 * 
 * @param   string  $source_image   : The remaining path to the source   image, after FCPATH.
 * 
 */
function wmimg_thumb($source_image)
{
    if (!file_exists($source_image))
    {
        return "$source_image not exists!";
    }

    $this->load->library('image_lib');
    $config['maintain_ratio'] = TRUE;
    $config['width'] = 145;
    $config['height'] = 120;
    $config['image_library'] = 'gd2';
    $config['source_image'] = FCPATH . $source_image;
    $config['create_thumb'] = TRUE;

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

    if ($this->image_lib->resize())
    {
        $this->image_lib->clear();
        // if thumb is created, calculating the name of thumb.
        $thumb_image = str_replace('.', '_thumb.', $source_image);

        $img_config['wm_type'] = 'overlay';
        $img_config['wm_overlay_path'] = FCPATH . '/assets/watermark.png';
        $img_config['wm_x_transp'] = 20;
        $img_config['wm_y_transp'] = 10;
        $img_config['wm_opacity'] = 50;
        $img_config['wm_vrt_alignment'] = 'bottom';
        $img_config['wm_hor_alignment'] = 'center';
        $img_config['source_image'] = FCPATH . $thumb_image;
        $this->image_lib->initialize($img_config);
        $this->image_lib->watermark();
    }

    if (file_exists(FCPATH . $thumb_image))
    {
        // Up to here, there is 2 images,  $source_image_thumb.extension and $source_image_thumb_thumb.extension. 
        // Deleting the 1st one, which has no watermarking. And renaming the 2nd one, which will be watermarked.
        unlink($thumb_image);
        $wm_thumbname = str_replace('.', '_thumb.', $thumb_image);
        rename(FCPATH . $wm_thumbname, FCPATH . $thumb_image);
    }
}
0 голосов
/ 30 июня 2010

У вас есть необходимые зависимости?От http://www.codeignitor.com/user_guide/libraries/image_lib.html:

Примечание: водяные знаки доступны только при использовании библиотеки GD / GD2.Кроме того, несмотря на то, что поддерживаются другие библиотеки, GD необходим для того, чтобы скрипт вычислял свойства изображения.Однако обработка изображения будет выполняться с указанной библиотекой.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...