Zano.ru




Рейтинг@Mail.ru


Главная / OpenCart добавляем Watermark (Водный знак) на фото товаров

OpenCart добавляем Watermark (Водный знак) на фото товаров

Для версий - v1.4.7, v1.4.8, v1.4.8b, v1.4.9, v1.4.9.1, v1.4.9.2, v1.4.9.3, v1.4.9.4, v1.4.9.5, v1.5.0, v1.5.0.1, v1.5.0.2, v1.5.0.3, v1.5.0.4, v1.5.0.5, v1.5.1, v1.5.1.1, v1.4.9.6, v1.5.1.2, v1.5.1.3, v1.5.3.1, 1.5.4

 

Файл catalog-model-tool-image.php

строки

 

                $image->resize($width, $height);
                $image->save(DIR_IMAGE . $new_image);
            } else {
                copy(DIR_IMAGE . $old_image, DIR_IMAGE . $new_image);
            }
        }



заменяем на



           if ($width == 980) { copy(DIR_IMAGE . $old_image, DIR_IMAGE . $new_image);}
            else
            {
            if ($width > 90 || $height > 90) {  
               $image->watermark(DIR_IMAGE . 'watermark.png', 'bottomright');
            }
                $image->resize($width, $height);
                $image->save(DIR_IMAGE . $new_image);
            }} else {
                copy(DIR_IMAGE . $old_image, DIR_IMAGE . $new_image);
            }
        }



где
$width == 980
ширина баннера на главной странице, указанная в настойках модуля Slideshow


$width > 90 || $height > 90
размер маленьких картинок в разных модулях, на которые watermark.png накладываться не будет.



Если слайдер на главной странице не используется, достаточно после строки

$image = new Image(DIR_IMAGE . $old_image);

добавить

if ($width > 90 || $height > 90) {   
   $image->watermark(DIR_IMAGE . 'watermark.png', 'center');
}





Файл system-library-image.php


строку

$watermark = $this->create($file);

заменяем  на 

$watermark = imagecreatefrompng($file);

 

перед строчкой

case 'bottomright':

вставлям

case 'center':
            $watermark_pos_x = ($this->info['width']- $watermark_width)/2;
            $watermark_pos_y = ($this->info['height']- $watermark_height)/2;
            break;



 

строку

imagecopy($this->image, $watermark, $watermark_pos_x, $watermark_pos_y, 0, 0, 120, 40);

заменяем на

imagecopy($this->image, $watermark, $watermark_pos_x,

$watermark_pos_y, 0, 0, $watermark_width, $watermark_height);



в папку image загружаем логотип-фото с прозрачным фоном, в формате png и именем watermark.png

Все!

Чистим кеш картинок и радуемся всем изображениям, размер которых больше чем 90x90px, помеченным Watermarkом.

Позиционирование водяного знака, возможные значения:

$image->watermark(DIR_IMAGE . 'watermark.png', 'bottomright');

bottomright, bottomleft, topright, topleft, center





 

Сделать отступ от края картинки проще всего сделав фото watermark.png с прозрачным запасом по краям





 

 




 
E-Mail: zanoru@yandex.ru