тотальный ватермарк @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 20 ] 
*   Список форумов / Начинка и техника / Программирование для WWW » ответить » создать топик « | »
Автор Сообщение
Pavel Муж.
Маса
Anguis in herba
200
Сообщения: 10326
Зарегистрирован: 13.01.01
Откуда: мАсква
Заголовок сообщения: тотальный ватермарк
Сообщение Добавлено: 20 Сентябрь 2006, 23:08:51 
Чуваки, а бывает так, что на все картинки, втянутые в документы форума (не важн опри этом где они физически хостятся) при просмотре топиков натягивался ватермарк?

_________________
© ПБ \\ кнопка «бабло» \\ жж \\ Изображение
Pavel Муж.
Маса
Anguis in herba
200
Сообщения: 10326
Зарегистрирован: 13.01.01
Откуда: мАсква
Сообщение Добавлено: 20 Сентябрь 2006, 23:10:32 
+ ну и при сохранении картинки, чтоб ватермарк тоже оставался. Бывает такое?

_________________
© ПБ \\ кнопка «бабло» \\ жж \\ Изображение
Kirill L. Муж.
Ater Cervus
41
Сообщения: 6574
Зарегистрирован: 18.12.05
Сообщение Добавлено: 20 Сентябрь 2006, 23:12:10 
Pavel, да, - в ипб, реализовано, в копермайне тоже и по-моему даже в новом форимэджес...

_________________
logachev.eu
Pavel Муж.
Маса
Anguis in herba
200
Сообщения: 10326
Зарегистрирован: 13.01.01
Откуда: мАсква
Сообщение Добавлено: 21 Сентябрь 2006, 12:55:38 
Kirill L., чувак, можно по-русски?
Нужно серверное решение, либо пхпбб-решение, ну, ты понимаешь :)

_________________
© ПБ \\ кнопка «бабло» \\ жж \\ Изображение
diezel2005 Муж.
новый человек
16
Сообщения: 140
Зарегистрирован: 12.08.06
Откуда: Украина
Сообщение Добавлено: 21 Сентябрь 2006, 13:23:13 
Файл .htaccess
RewriteEngine on
RewriteRule ^(.*)\.jpg /[full path to your image.php directory]/image.php?%{REQUEST_FILENAME}

Файл image.php
<?php
header("Content-type: image/jpeg");

//File names
$wmark='watermark.png';
$wmarks='watermark_s.png';
$noimg='noimg.png';
$mimage=$QUERY_STRING;
$big_image_width = 300;

// mod to display default image instead of 404
if (file_exists($QUERY_STRING)) {
//Loading
$watermark_img = imagecreatefrompng($wmark);
$watermarks_img = imagecreatefrompng($wmarks);

$wmrk_size = getimagesize($wmark);
$wmrks_size = getimagesize($wmarks);

$main_img = imagecreatefromjpeg($mimage);
//ImageAlphaBlending($main_image, true);

//Merge the 2 buffers
if (ImageSX($main_img) > $big_image_width) {
$posx = (ImageSX($main_img) - ImageSX($watermark_img))/2;
$posy = (ImageSY($main_img) - ImageSY($watermark_img))/2;
imagecopy($main_img, $watermark_img, $posx, $posy, 0, 0, $wmrk_size[0], $wmrk_size[1]);
}else{
$posxs = (ImageSX($main_img) - ImageSX($watermarks_img))/2;
$posys = (ImageSY($main_img) - ImageSY($watermarks_img))/2;
imagecopy($main_img, $watermarks_img, $posxs, $posys, 0, 0, $wmrks_size[0], $wmrks_size[1]);
}

//Output file to browser
imagejpeg($main_img);
imagedestroy($watermark_img);
imagedestroy($watermarks_img);
imagedestroy($main_img);

} else {

//Loading
$noimg_show = imagecreatefrompng($noimg);

//Output file to browser
imagejpeg($noimg_show);
imagedestroy($noimg_show);

}
?>

И три графических файла -
noimg.png - для отображения картинок, которых нет
watermark.png - большое лого
watermark_s.png - маленькое лого

_________________
Не можешь вынести хамства? Сосчитай до десяти и вынеси хама.
Jamakaser Муж.
участник
91
Сообщения: 1163
Зарегистрирован: 26.01.05
Сообщение Добавлено: 21 Сентябрь 2006, 13:36:53 
diezel2005,

А разве...


Цитата:
Файл .htaccess



...поможет при...


Цитата:
не важн опри этом где они физически хостятся



…?

_________________
Найди кликабельный пиксель -->
Pavel Муж.
Маса
Anguis in herba
200
Сообщения: 10326
Зарегистрирован: 13.01.01
Откуда: мАсква
Сообщение Добавлено: 21 Сентябрь 2006, 13:55:03 
diezel2005, да, поможет ли?

_________________
© ПБ \\ кнопка «бабло» \\ жж \\ Изображение
diezel2005 Муж.
новый человек
16
Сообщения: 140
Зарегистрирован: 12.08.06
Откуда: Украина
Сообщение Добавлено: 21 Сентябрь 2006, 13:55:18 

Цитата:
Файл .htaccess


Только в качестве примера авто-ватермарков без лазания в код системы(сам пример только для JPG). С сохранением картинки с тем-же ватермарком.
а насчет -

Цитата:
не важн опри этом где они физически хостятся


- я ничего такого не упоминал.

_________________
Не можешь вынести хамства? Сосчитай до десяти и вынеси хама.
Jamakaser Муж.
участник
91
Сообщения: 1163
Зарегистрирован: 26.01.05
Сообщение Добавлено: 21 Сентябрь 2006, 13:56:37 
ИМХО, в скрипте где ББ код обрабатывается заменить формирование картинок из [ IMG ]
на что-то вроде этого:

Код:
$str = preg_replace("|\[img\][^ ](.*)[^ ]\[/img\]|is", "<img scr=\"путь_к_скрипту/image.php?$1\">", $str);


остальное как у diezel2005

_________________
Найди кликабельный пиксель -->
Jamakaser Муж.
участник
91
Сообщения: 1163
Зарегистрирован: 26.01.05
Сообщение Добавлено: 21 Сентябрь 2006, 13:58:10 
diezel2005,

оффтопик:

Цитата:
- я ничего такого не упоминал.


ну извини
diezel2005 Муж.
новый человек
16
Сообщения: 140
Зарегистрирован: 12.08.06
Откуда: Украина
Сообщение Добавлено: 21 Сентябрь 2006, 14:00:53 
Теперь насчет -

Цитата:
не важн опри этом где они физически хостятся


Я в ББ не силен, работаю по е-коммерцу в основном. Так вот, в любой софтине, которую я делаю, есто функция пре-обработки изображений. Что-то типа
function tep_image($src, $alt = '', $width = '', $height = '', $parameters = '') {
if ( (empty($src) || ($src == DIR_WS_IMAGES)) && (IMAGE_REQUIRED == 'false') ) {
return false;
}

// alt is added to the img tag even if it is null to prevent browsers from outputting
// the image filename as default
$image = '<img src="' . tep_output_string($src) . '" border="0" align="top" hspace="0" vspace="0" alt="' . tep_output_string($alt) . '"';

if (tep_not_null($alt)) {
$image .= ' title=" ' . tep_output_string($alt) . ' "';
}

if ( (CONFIG_CALCULATE_IMAGE_SIZE == 'true') && (empty($width) || empty($height)) ) {
if ($image_size = @getimagesize($src)) {
if (empty($width) && tep_not_null($height)) {
$ratio = $height / $image_size[1];
$width = $image_size[0] * $ratio;
} elseif (tep_not_null($width) && empty($height)) {
$ratio = $width / $image_size[0];
$height = $image_size[1] * $ratio;
} elseif (empty($width) && empty($height)) {
$width = $image_size[0];
$height = $image_size[1];
}
} elseif (IMAGE_REQUIRED == 'false') {
return false;
}
}

if (tep_not_null($width) && tep_not_null($height)) {
$image .= ' width="' . tep_output_string($width) . '" height="' . tep_output_string($height) . '"';
}

if (tep_not_null($parameters)) $image .= ' ' . $parameters;

$image .= '>';

return $image;
}
Эта функция принимает ссылку на картинку и выдает заполненый тэг IMG.
если в теге вместо ссылки на картинку(неважно где хостящуюся) вставлять свой код, типа вышеуказаного - то результат и будет - автоватермарк всех картинок

_________________
Не можешь вынести хамства? Сосчитай до десяти и вынеси хама.
diezel2005 Муж.
новый человек
16
Сообщения: 140
Зарегистрирован: 12.08.06
Откуда: Украина
Сообщение Добавлено: 21 Сентябрь 2006, 14:07:12 
Замена src будет примерно такой
Код:
$image = '<img src="image.php?img='.$src.'&w='.$width.'&h='.$height.'"';

с последующим завершением тега img.
в $src можно подставить и файл, и урл, и что угодно.
А уж сам image.php разберется - если файл отсутствует, выведет заранее заготовленную картинку, если файл есть - проставит водяной знак.

_________________
Не можешь вынести хамства? Сосчитай до десяти и вынеси хама.
Kurilshik
Goldmember
142
Сообщения: 12797
Зарегистрирован: 18.10.04
Откуда: Кожаное кресло
Сообщение Добавлено: 21 Сентябрь 2006, 22:17:53 
оффтопик:
COLT, если б ты еще сделал чтобы ватермарк появлялся только если картинка находится на другом хосте нежели на дефоруме.. ;)

_________________

Портфолио - ЖЖ - Кулинарные рецепты - Блог о дизайне, уроки фотошоп

icq: 295346452 | Почта: info()alexey-popov.com

.
diezel2005 Муж.
новый человек
16
Сообщения: 140
Зарегистрирован: 12.08.06
Откуда: Украина
Сообщение Добавлено: 22 Сентябрь 2006, 00:07:31 

Цитата:
по первому коду
для нормальной проверки на существование файла, видимо надо заменить строки


Там в принципе много лишнего - я просто свой рабочий код сюда влепил.
он работает только с локальными файлами, пск обращение к посторонним хостингам оченно грузят канал, хотя по алгоритму обработки - разницы нет, и скорость выдачи меня устраивает.
Вот ссылочки, в качестве примера:
Большое лого
http://totalwirelessonline.com/catalog/ … =350&h=300
Маленькое лого
http://totalwirelessonline.com/catalog/ … =300&h=250
Сама картинка
http://totalwirelessonline.com/catalog/ … _image.jpg

_________________
Не можешь вынести хамства? Сосчитай до десяти и вынеси хама.
1NV1Z0R
соучастник
12
Сообщения: 971
Зарегистрирован: 27.09.05
Сообщение Добавлено: 22 Сентябрь 2006, 17:36:26 
Легко! Можно сделать чтобы все картинки на сайте ватермарчились даже с других хостов (можно даже сделать так, чтобы код не менялся, но это уже яваскриптик).

А решение проще простого - контроллер буфера в пхп если медленно, но кросссистемно, или парс постов. Ну и таблица с кешированными картинками и все такое.
1NV1Z0R
соучастник
12
Сообщения: 971
Зарегистрирован: 27.09.05
Сообщение Добавлено: 22 Сентябрь 2006, 17:38:48 
А можно еще сделать весело зациклить на ридерактах удаленный путь, например http://site.ru/image.jpg где image.jpg скрипт. И навставлять таких картинок 100 в пост а постов 100. и будет вам маленький ddos =)
Jamakaser Муж.
участник
91
Сообщения: 1163
Зарегистрирован: 26.01.05
Сообщение Добавлено: 22 Сентябрь 2006, 18:38:04 

Цитата:
И навставлять таких картинок 100 в пост а постов 100. и будет вам маленький ddos =)



Придумай как сделать от этого защиту, поделюсь гонораром. Сумма не очень большая, но на пиво хватит.

_________________
Найди кликабельный пиксель -->
1NV1Z0R
соучастник
12
Сообщения: 971
Зарегистрирован: 27.09.05
Сообщение Добавлено: 22 Сентябрь 2006, 23:01:38 
максимум две-три картинки с рыла и все.

+ Cron или очередь через бд
+ кеширование отвотермарченых из бд
1NV1Z0R
соучастник
12
Сообщения: 971
Зарегистрирован: 27.09.05
Сообщение Добавлено: 22 Сентябрь 2006, 23:03:23 
а еще прикольно подвешивать соединение с хостом и когда много соединений будет, будет адская херня. ...и вываливать мегабайтами рандомную бинарную кашу

Весело.
Сергей Н.
новый человек
106
Сообщения: 67
Зарегистрирован: 07.08.06
Откуда: Москва
Сообщение Добавлено: 8 Октябрь 2006, 00:08:15 
Владеет ли кто решением как выдирать ватермарк из фоток загружающихся на сервер?

_________________
А вот ссылку на сайт не дам. А то скажут опять, что поднимаю ИЦ.
*   Список форумов / Начинка и техника / Программирование для WWW « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 20 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100