водяной знак

#1 21 декабря 2013 в 17:04
Не могу настроить нанесение водяного знака на картинки в объявлениях.

В настройках компонента включено нанесение.
В настройках сайта имя указано (стандартный водяной знак)

Компонент iBoard
#2 21 декабря 2013 в 21:57
Водяной знак наносится на изображение не в компоненте, а в ../includes/graphic.inc
Там задаёшь размеры водяного знака, а так же его местоположение.
Изображение водяного знака находится в ../images/watermark.png
#3 21 декабря 2013 в 23:02
Где здесь чего менять?

function img_add_watermark($src){

$size = getimagesize($src);
if ($size === false) return false;

$format = mb_strtolower(mb_substr($size['mime'], mb_strpos($size['mime'], '/')+1));
$icfunc = "imagecreatefrom". $format;
if (!function_exists($icfunc)) return false;

$isrc = $icfunc($src);

img_watermark($isrc, $size[0], $size[1]);

// вывод картинки и очистка памяти
imagejpeg($isrc,$src,80);

}
#4 22 декабря 2013 в 00:02
Функция img_watermark в файле graphic.inc.php

Строка
if (!$inConf->wmark) { return; }
означает что если в файле includes/config.inc.php не задано имя картинки $_CFG['wmark'] = 'watermark.png';
то watermark не грузится.
А далее в строке $wm_file = PATH.'/images/'.$inConf->wmark;
как раз и есть путь подрузки watermark'а где $inConf->wmark это переменная $_CFG['wmark'] из файла includes/config.inc.php



  1.  
  2. function img_watermark(&$img, $w, $h){
  3.  
  4. $inConf = cmsConfig::getInstance();
  5.  
  6. if (!$inConf->wmark) { return; }
  7.  
  8. $wm_file = PATH.'/images/'.$inConf->wmark;
  9.  
  10. if (!file_exists($wm_file)) { return; }
  11.  
  12. $size = getimagesize($wm_file);
  13.  
  14. $wm = imagecreatefrompng($wm_file);
  15.  
  16. $wm_w = $size[0];
  17. $wm_h = $size[1];
  18.  
  19. $wm_x = $w - $wm_w;
  20. $wm_y = $h - $wm_h;
  21.  
  22. imagecopyresampled($img, $wm, $wm_x, $wm_y, 0, 0, $wm_w, $wm_h, $wm_w, $wm_h);
  23.  
  24. }
  25.  
#5 22 декабря 2013 в 09:49


Функция img_watermark в файле graphic.inc.php

Строка
if (!$inConf->wmark) { return; }
означает что если в файле includes/config.inc.php не задано имя картинки $_CFG['wmark'] = 'watermark.png';
то watermark не грузится.

propit

Всмысле если имя вотермарка задано как watermark.png то он не наносится? Имя другое надо?
#6 22 декабря 2013 в 15:17
Наоборот — надо проверить что в конфиге указано верно название картинки водяного знака и что физически картинка размещена в соответствующей папке…
#7 22 декабря 2013 в 17:37
Вот
#8 22 декабря 2013 в 22:24
Так у Вас нестандартная доска. Явно с использованием хака — т.к. можно загрузить не 1 а несколько фоток.
А на чистом Instant можно только 1 фото к объявлению крепить.
Проблема явно в этом хаке (модернизации самой доски объявлений) т.к. на чистом Инстанте все отлично пашет.
#9 22 декабря 2013 в 22:53
А вообще вы не там настраиваете вывод водяного знака на объявлениях.
Вы привели скрин настройки сайта — а надо зайти в настройку Доски Объявлений -
там в общих настройках нужно установить флаг напротив фразы "Наносить водяной знак:"
#10 23 декабря 2013 в 07:47


А вообще вы не там настраиваете вывод водяного знака на объявлениях.
Вы привели скрин настройки сайта — а надо зайти в настройку Доски Объявлений -
там в общих настройках нужно установить флаг напротив фразы "Наносить водяной знак:"

propit
В доске тоже включено. Ладно сошлюсь на нестандартную доску и забуду.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.