LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
28.07.2016, 14:32:53 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1] 2 3 4 5 6 7 8 9   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Watermark(водяные знаки) скрипт на PHP и Joomla ?  (Прочитано 113447 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Keno
Осваиваюсь на форуме
***

Репутация: +41/-0
Offline Offline

Пол: Мужской
Сообщений: 84



« : 04.06.2008, 13:54:55 »

 Здравствуйте. Долго искал мамбот или на худой конец компонент c выводом watermark (водяных знаков) на изображение - но всё оказывалось не то, то компоненты слишком тяжелые (в плане запросов к БД) с многими не нужными мне функциями, то мамботы неподходящие, той же Multithumb, где водяные знаки выводятся только на выводе оригинального (большого) изображения и при копировании пользователями - водяных знаков не оставалось.
 Вот по блуждал немного по сети и нашел скрипт на PHP  - но скрипт у меня не хочет работать. Может какие-то конфликты с Joomla ?
 Собственно сам скрипт:
Код:
<?php

#####################################################
# originally gleaned from
# http://www.fedeblog.com.ar/files/view.php?i=Watermark/watermark.php
# Modified by Liem Bahneman (liem@bahneman.com) with some
# path enhancements when called to handled subdirectories


#####################################################
# Okay to edit these

# what is the root of your files?
$basedir="/home/liem/public_html";
$watermarkimage="bd.png";

#####################################################
# end user modifiable stuff...

$file=basename($_GET['i']);
$path=($_GET['p']);

$image = $basedir."/".$path."/".$file;
$watermark = $basedir."/".$watermarkimage;

$im = imagecreatefrompng($watermark);

$ext = substr($image, -3);

if (strtolower($ext) == "gif") {
    if (!$im2 = imagecreatefromgif($image)) {
        echo "Error opening $image!"; exit;
    }
} else if(strtolower($ext) == "jpg") {
    if (!$im2 = imagecreatefromjpeg($image)) {
        echo "Error opening $image!"; exit;
    }
} else if(strtolower($ext) == "png") {
    if (!$im2 = imagecreatefrompng($image)) {
        echo "Error opening $image!"; exit;
    }
} else {
    die;
}

imagecopy($im2, $im, (imagesx($im2)/2)-(imagesx($im)/2), (imagesy($im2)/2)-(imagesy($im)/2), 0, 0, imagesx($im), imagesy($im));

if($_GET[repeat]) {
    $waterless = imagesx($im2) - imagesx($im);
    $rest = ceil($waterless/imagesx($im)/2);
    
    for($n=1; $n<=$rest; $n++) {
        imagecopy($im2, $im, ((imagesx($im2)/2)-(imagesx($im)/2))-(imagesx($im)*$n), (imagesy($im2)/2)-(imagesy($im)/2), 0, 0, imagesx($im), imagesy($im));
        imagecopy($im2, $im, ((imagesx($im2)/2)-(imagesx($im)/2))+(imagesx($im)*$n), (imagesy($im2)/2)-(imagesy($im)/2), 0, 0, imagesx($im), imagesy($im));
    }
}

$last_modified = gmdate('D, d M Y H:i:s T', filemtime ($image));

header("Last-Modified: $last_modified");
header("Content-Type: image/jpeg");
imagejpeg($im2,NULL,95);
imagedestroy($im);
imagedestroy($im2);

?>
Скрипт был взят с этого сайта http://rs.bahneman.com/protecting_your_images.php
 Может я сделал неправильные записи в .htaccess:

RewriteEngine on
RewriteBase /
RewriteRule ^(watermarked.*)/(.*\.*)$ /~liem/wm.php?p=$1&i=$2

 Подскажите, что я  мог неправильно сделать. Заранее благодарен за ответы.
« Последнее редактирование: 22.05.2009, 17:29:57 от Keno » Записан
Keno
Осваиваюсь на форуме
***

Репутация: +41/-0
Offline Offline

Пол: Мужской
Сообщений: 84



« Ответ #1 : 01.10.2008, 18:48:01 »

 Для меня выходом по watermark стал простенький скрипт (см. ниже), который я нашел в сети. Работает он через .htaccess. В данном случае .htaccess перенаправляет с любой картинки на этот скрипт (_watermark.php), а этот скрипт уже по переданной информации (путь к картинке), добавляет на неё watermark.
  Итак, если это кого-то заинтересует вот краткое содержание что нужно сделать:
 1.Создаем в корне сайта папку с названием watermark и забрасываем в нее два этих файла:
_watermark.php (сам скрипт):
Код:
<?

waterMark($_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI'], "watermark.png", "bottom=5,right=5");

function waterMark($original, $watermark, $placement = 'bottom=5,right=5', $destination = null) {
   $original = urldecode($original);
   $info_o = @getImageSize($original);
   if (!$info_o)
         return false;
   $info_w = @getImageSize($watermark);
   if (!$info_w)
         return false;

   list ($vertical, $horizontal) = split(',', $placement,2);
   list($vertical, $sy) = split('=', trim($vertical),2);
   list($horizontal, $sx) = split('=', trim($horizontal),2);

   switch (trim($vertical)) {
      case 'bottom':
         $y = $info_o[1] - $info_w[1] - (int)$sy;
         break;
      case 'middle':
         $y = ceil($info_o[1]/2) - ceil($info_w[1]/2) + (int)$sy;
         break;
      default:
         $y = (int)$sy;
         break;
      }

   switch (trim($horizontal)) {
      case 'right':
         $x = $info_o[0] - $info_w[0] - (int)$sx;
         break;
      case 'center':
         $x = ceil($info_o[0]/2) - ceil($info_w[0]/2) + (int)$sx;
         break;
      default:
         $x = (int)$sx;
         break;
      }

   header("Content-Type: ".$info_o['mime']);

   $original = @imageCreateFromString(file_get_contents($original));
   $watermark = @imageCreateFromString(file_get_contents($watermark));
   $out = imageCreateTrueColor($info_o[0],$info_o[1]);

   imageCopy($out, $original, 0, 0, 0, 0, $info_o[0], $info_o[1]);
   if( ($info_o[0] > 250) && ($info_o[1] > 250) )
   {
   imageCopy($out, $watermark, $x, $y, 0, 0, $info_w[0], $info_w[1]);
   }

   switch ($info_o[2]) {
      case 1:
         imageGIF($out);
         break;
      case 2:
         imageJPEG($out);
         break;
      case 3:
         imagePNG($out);
         break;
         }

   imageDestroy($out);
   imageDestroy($original);
   imageDestroy($watermark);

   return true;
   }

?>

и watermark.png(вашу картинку)
 2.Создаем файл .htaccess:
Код:
DirectoryIndex index.php
 
<FilesMatch "\.(gif|jpg|png)$">
   RewriteEngine On
   RewriteCond %{REQUEST_FILENAME} -f
   RewriteRule ^(.*)$ /watermark/_watermark.php [T=application/x-httpd-php,L,QSA]
</FilesMatch>

и забрасываем его в папку с вашими картинками. К примеру в папку stories - в данном случае водяные знаки будут накладываться на все картинки и папки с картинками находящиеся в папке stories. Если нужно накладывать watermarkи не на все изображения папки stories, а на какие-то определенные папки с картинками - закидываем файл .htaccess именно в те папки с изображениями где нужно наложение водяных знаков.
Все! Ваши фотки с водяным знаком!

Скрипт был подкоректирован с учетом предложений, замечаний

1. Чтобы не было знака на аватарах пользователей или на картинках малого размера в _watermark.php была изменена строка:
imageCopy($out, $watermark, $x, $y, 0, 0, $info_w[0], $info_w[1]);
на:
if( ($info_o[0] > 250) && ($info_o[1] > 250) )
{
imageCopy($out, $watermark, $x, $y, 0, 0, $info_w[0], $info_w[1]);
}

250 - это размер картинки (ширина и высота), который указывает, что до 250 пикселей водяной знак не будет накладываться на изображение, а уже после 250 - будет (Размеры можно подгонять под себя).
2. Также была решена проблема не отображения картинок содержащие пробелы или русские буквы (см. пост ниже от Redstagm) Добавлено:
$original = urldecode($original);
3. Были исправлены мелкие неточности.

Внизу в архиве находятся все 3 выше перечисленные файла



[вложение удалено Администратором]
« Последнее редактирование: 22.05.2009, 19:43:21 от Keno » Записан
zlideni
Давно я тут
****

Репутация: +76/-0
Offline Offline

Пол: Мужской
Сообщений: 347



« Ответ #2 : 28.10.2008, 10:22:56 »

У меня проблема такого плана http://joomlaforum.ru/index.php/topic,45450.new.html , этот скрипт даёт тот же результат а точнее в моём случае никакого. Жаль…
Записан
mashasd
Гость
« Ответ #3 : 28.10.2008, 19:59:55 »

Все зделала точно как написанно..... НЕРАБОТАЕТ

Кто может правильно поправить и доработать эту функцию ?  Помогите , пожалуйста...
Записан
Keno
Осваиваюсь на форуме
***

Репутация: +41/-0
Offline Offline

Пол: Мужской
Сообщений: 84



« Ответ #4 : 29.10.2008, 14:32:35 »

См. 2-ой пост с правками и дополнениями.
« Последнее редактирование: 22.05.2009, 19:48:44 от Keno » Записан
zlideni
Давно я тут
****

Репутация: +76/-0
Offline Offline

Пол: Мужской
Сообщений: 347



« Ответ #5 : 29.10.2008, 14:37:52 »

Права доступа 777 поставил для полного счастья, в остальном всё сделал как прописана.
.htaccess закидываю в папку с jpg  изображениями. Фотки открываются но без водяного знака.
“о умолчанию ето будет папка stories” про это по подробние.
Записан
DeeByZ
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 7


« Ответ #6 : 31.10.2008, 00:58:02 »

+1 все делал как сказано, не работает...
Записан
Keno
Осваиваюсь на форуме
***

Репутация: +41/-0
Offline Offline

Пол: Мужской
Сообщений: 84



« Ответ #7 : 01.11.2008, 18:18:11 »

См. 2-ой пост с правками и дополнениями.
« Последнее редактирование: 22.05.2009, 19:49:25 от Keno » Записан
smls
Осваиваюсь на форуме
***

Репутация: +8/-1
Offline Offline

Сообщений: 94


« Ответ #8 : 02.11.2008, 01:31:55 »

Keno. какие атрибуты, у файлов должны быть? У меня вообще рисунки перестает показывать из той папки куда .htaccess запихиваю.
Записан
Keno
Осваиваюсь на форуме
***

Репутация: +41/-0
Offline Offline

Пол: Мужской
Сообщений: 84



« Ответ #9 : 02.11.2008, 15:52:47 »

См. 2-ой пост с правками и дополнениями.
« Последнее редактирование: 22.05.2009, 19:50:10 от Keno » Записан
smls
Осваиваюсь на форуме
***

Репутация: +8/-1
Offline Offline

Сообщений: 94


« Ответ #10 : 02.11.2008, 22:48:43 »

У меня  через mosimage...
Записан
Morfei
Захожу иногда
**

Репутация: +5/-0
Offline Offline

Сообщений: 24


« Ответ #11 : 03.11.2008, 02:15:20 »

Буду пробовать. http://www.kreacom.dk/mambots/multithumb.html
Записан
huntter
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 4


« Ответ #12 : 14.11.2008, 14:43:19 »


htaccess.txt(тот что в root-корне) переименовали в  .htaccess (уточню главный .htaccess никуда удалять не надо он задает дополнительные параметры  для работы веб-сервера во всех каталогах (папках) ,а тот что я давал .htaccess -распространяет свое действие -только на папку stories(или на ту папку куда вы закинете с вашыми картинками)
 Права доступа выставили?

чей-то я не догнал, что надо сделать с этим файлом ???? Cry
Записан
zlideni
Давно я тут
****

Репутация: +76/-0
Offline Offline

Пол: Мужской
Сообщений: 347



« Ответ #13 : 14.11.2008, 14:46:05 »

С этим .htaccess? Просто копируешь в паки с изображениями которые будут выводится через {mosimage}.
Записан
huntter
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 4


« Ответ #14 : 14.11.2008, 14:57:33 »

С этим .htaccess? Просто копируешь в паки с изображениями которые будут выводится через {mosimage}.

так он что должен иметь расширение .txt  ?
Записан
zlideni
Давно я тут
****

Репутация: +76/-0
Offline Offline

Пол: Мужской
Сообщений: 347



« Ответ #15 : 14.11.2008, 14:58:51 »

ПОЧИТАЙ ВНИМАТЕЛЬНО 2 ПОСТ .
Записан
huntter
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 4


« Ответ #16 : 14.11.2008, 15:02:35 »

ПОЧИТАЙ ВНИМАТЕЛЬНО 2 ПОСТ .

перечитал нескольок раз! сделал _watermark.php  ,  загрузил watermark.png  , сделал .htaccess  (не .txt)
собственно вопрос... дольше никаких файлов не делаю ? и не переименовываю ? )))
кстати у тебя работает ???
Записан
zlideni
Давно я тут
****

Репутация: +76/-0
Offline Offline

Пол: Мужской
Сообщений: 347



« Ответ #17 : 14.11.2008, 15:20:42 »

У МЕНЯ БЫЛЙ ДРУГИЕ ЗАДАЧИ…
Ты где собирайся  выводить изображение?
Если всё сделал как написано то посмотри что получилось…
Записан
huntter
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 4


« Ответ #18 : 14.11.2008, 15:37:07 »

У МЕНЯ БЫЛЙ ДРУГИЕ ЗАДАЧИ…
Ты где собирайся  выводить изображение?
Если всё сделал как написано то посмотри что получилось…


я хочу watermark на всех изображениях ФОРУМА (в дальнейшем может быть и сайта)! но не только на загружаемых но и на уже загруженных.

установил как написано, фотки перстали грузиться (((
P.S.  грузится половина фоток!!! закономерности нету   Shocked

« Последнее редактирование: 14.11.2008, 16:03:50 от huntter » Записан
Keno
Осваиваюсь на форуме
***

Репутация: +41/-0
Offline Offline

Пол: Мужской
Сообщений: 84



« Ответ #19 : 15.11.2008, 13:01:43 »

См. 2-ой пост с правками и дополнениями.
« Последнее редактирование: 22.05.2009, 19:50:58 от Keno » Записан
killer-13
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 7


« Ответ #20 : 21.01.2009, 17:12:02 »

поставил этот скрипт..он заработал сразу..но как и писалось рание..некоторые картинки перестали просто отоброжаться..что мне совсем не понятно..хотелось бы получить дельные советы..а так это былобы решение возникшей потребности в подписи картинок
Записан
kokus
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 12


« Ответ #21 : 01.02.2009, 13:52:16 »

Все точно так же, сделал в точности по описанию и перестали отображаться картинки. Кто нашел решение, пожалуйста отпишитесь. Какие еще есть варианты вывода водяных знаков кроме этого скрипта и Multithumb?
Записан
Redstagm
Гость
« Ответ #22 : 11.02.2009, 12:43:10 »

Огромное спасибо автору топика, Keno.

Всё получилось с первого раза!


Но образовался вопрос на засыпку: каким способом можно обойти имена картинок содержащие пробелы или русские буквы?

Huh
Записан
Redstagm
Гость
« Ответ #23 : 11.02.2009, 16:35:04 »

Цитировать
Но образовался вопрос на засыпку: каким способом можно обойти имена картинок содержащие пробелы или русские буквы?

 Cheesy Спасибо Алексу!!!!

function waterMark($original, $watermark, $placement = 'bottom=5,right=5', $destination = null) {

^добаить после этой строчки^

$original = urldecode($original);
Записан
killer-13
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 7


« Ответ #24 : 11.02.2009, 20:43:44 »

to_Redstagm
если не трудно..выложе сюда свою рабочую версию..а то я так и не смог победить проподание части картинок..
Записан
killer-13
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 7


« Ответ #25 : 13.02.2009, 12:55:18 »

вчера весь день убил..и дошел до истины..в скрипте
_watermark.php непрвильная строка
waterMark($_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI'], "watermark.png", "bottom=5,right=5");
если сам фаил называется _watermark.png то работать небудет..надо поправить
и в .htaccess который кладется в папку с имайджами поправить путь до файла
 RewriteRule ^(.*)$ /watermark/_watermark.php [T=application/x-httpd-php,L,QSA]
у меня в нем почемуто пробелы были..
после этого все картинки пометились водяным знаком.. и ничего не проподает
но возник вопрос..а как ввести ограничение на размер картинок??
скажем метить картинки размером от 100*100 и больше..меньше не трогать..
а то неохото пересортировывать картинки..
Записан
Redstagm
Гость
« Ответ #26 : 16.02.2009, 16:16:19 »

Цитировать
но возник вопрос..а как ввести ограничение на размер картинок??
скажем метить картинки размером от 100*100 и больше..меньше не трогать..
а то неохото пересортировывать картинки..

Можно сделать не изменяя скрипт, например ватермарк накладываться с правого, нижнего угла, можно сделать ватермарк например 1000х1000 а правый нижний угол оставить прозрачным, 100х100 или более.
Записан
abbbc
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 9


« Ответ #27 : 07.04.2009, 18:41:40 »

есть 2 формата картинки jpeg и jpg
Одна картинка а другая фотка. Пропишите правильно функции и расширения, возможно поэтому у вас не работает.

Записан
smls
Осваиваюсь на форуме
***

Репутация: +8/-1
Offline Offline

Сообщений: 94


« Ответ #28 : 10.04.2009, 07:30:22 »

Скрипт после исправления путей к файлу, заработал.
Как сделать так, чтоб ватермарк ставился только на изображения находящиеся в папке с .htaccess и на ставился на изображения из подпапок этой папки?
Записан
killer-13
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 7


« Ответ #29 : 10.04.2009, 08:15:20 »

как я предпологаю..действие этого самомго файла распространяются от корня где лежит..до всего что ниже по уровню..попробуй разве что положить в подпапки пустышку..которая может будет отменять действия..или клади меченые картинки в другую папку..у меня так сделано..
Записан
Страниц: [1] 2 3 4 5 6 7 8 9   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet