Как сделать водяной знак в каталоге?

Как сделать водяной знак в каталоге?

#1 11 августа 2009 в 13:42
Друзья, как сделать водяной знак на фотографиях в каталоге? Не в фотоальбоме, а именно в каталоге
#2 11 августа 2009 в 14:11
Отвечаю сам себе =))
Не очень сложно =))
Создаём файл _watermark.php
  1. <?
  2.  
  3. waterMark($_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI'], "_watermark.png", "bottom=5,right=5");
  4.  
  5. function waterMark($original, $watermark, $placement = 'bottom=5,right=5', $destination = null) {
  6. $info_o = @getImageSize($original);
  7. if (!$info_o)
  8. return false;
  9. $info_w = @getImageSize($watermark);
  10. if (!$info_w)
  11. return false;
  12.  
  13. list ($vertical, $horizontal) = split(',', $placement,2);
  14. list($vertical, $sy) = split('=', trim($vertical),2);
  15. list($horizontal, $sx) = split('=', trim($horizontal),2);
  16.  
  17. switch (trim($vertical)) {
  18. case 'bottom':
  19. $y = $info_o[1] - $info_w[1] - (int)$sy;
  20. break;
  21. case 'middle':
  22. $y = ceil($info_o[1]/2) - ceil($info_w[1]/2) + (int)$sy;
  23. break;
  24. default:
  25. $y = (int)$sy;
  26. break;
  27. }
  28.  
  29. switch (trim($horizontal)) {
  30. case 'right':
  31. $x = $info_o[0] - $info_w[0] - (int)$sx;
  32. break;
  33. case 'center':
  34. $x = ceil($info_o[0]/2) - ceil($info_w[0]/2) + (int)$sx;
  35. break;
  36. default:
  37. $x = (int)$sx;
  38. break;
  39. }
  40.  
  41. header("Content-Type: ".$info_o['mime']);
  42.  
  43. $original = @imageCreateFromString(file_get_contents($original));
  44. $watermark = @imageCreateFromString(file_get_contents($watermark));
  45. $out = imageCreateTrueColor($info_o[0],$info_o[1]);
  46.  
  47. imageCopy($out, $original, 0, 0, 0, 0, $info_o[0], $info_o[1]);
  48. imageCopy($out, $watermark, $x, $y, 0, 0, $info_w[0], $info_w[1]);
  49.  
  50. switch ($info_o[2]) {
  51. case 1:
  52. imageGIF($out);
  53. break;
  54. case 2:
  55. imageJPEG($out);
  56. break;
  57. case 3:
  58. imagePNG($out);
  59. break;
  60. }
  61.  
  62. imageDestroy($out);
  63. imageDestroy($original);
  64. imageDestroy($watermark);
  65.  
  66. return true;
  67. }
  68.  
  69. ?>
Создаём файл .htaccess
  1. Options +Indexes
  2. DirectoryIndex index.htm
  3.  
  4. <FilesMatch "\.(gif|jpg|png)$">
  5. RewriteEngine On
  6. RewriteCond %{REQUEST_FILENAME} -f
  7. RewriteRule ^(.*)$ /watermark/_watermark.php [T=application/x-httpd-php,L,QSA]
  8. </FilesMatch>
Создаём папку watermark и заливаем туда файл _watermark.php с картинкой в png ( _watermark.png ).

А, файл .htaccess заливаем туда где папка с картинками- images или photos ( в данном случае /images/catalog)
И на каждой картинке будет ваш копирайт =)
Удачи =)
#3 11 августа 2009 в 16:16
Ляха… но как масштабировать или исключить показ watermark на маленьких и средних изображениях?
#4 10 мая 2011 в 15:16
Может это будет как никропостинг, но все же.
Задача такая. Стоит веб-камера, заливает раз в 30 секунд фотку на хостинг, где она успешно отобоажается (можно посмотреть тут).Нужно, чтобы при отображении на сайте наносился водяной знак (watermark).

Приведенный способ выше не помогает, не правильно срабатывает фаил .htaccess, других способов в инете не нашел.
Обращаюсь в вам! Помогите люди добрые советом!
#5 10 мая 2011 в 15:53
Lukasss, с какой-то версии переадресация в htaccess работает некорректно, точнее работают редиректы на уровне домена, а на уровне файлов надо делать уже в url_rewrite.php
#6 10 мая 2011 в 16:17
Извините за некомпетентность, но я не представляю о чем речь.
Можно по подробней, пожалуйста?!
#7 10 мая 2011 в 16:26
Настройте программу с которой работает веб-камера, в большинстве софта можно накладывать эффекты, в том числе текст или изображение (и сервер можно будет не грузить лишней работой…)
#8 10 мая 2011 в 16:37
У меня камера сама выкладывает(IP камера) помимо софта. она простенькая и таких настроек не имеет.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.