На многих популярных сайтах с
уникальным контентом, нередко
можно увидеть, что почти на
всех изображениях стоит либо
картинка -логотип , либо подпись
с названием сайта. Делается это
для того, что бы хоть как то
защитить сайт от
недобросовестных веб-мастеров ,
забывающих указывать
первоисточник материала. Очень
актуален такой вид защиты для
сайтов с уникальными галереями
всевозможных картинок и
изображений . Конечно, скажете
вы , можно просто обрезать или
замазать то место, где стоит
подпись или логотип , но это все
равно лучше , чем вообще не
пытаться защитить свои
изображения от посягательств со
стороны конкурентов.
Для реализации защиты
изображений на всем сайте
нужно будет использовать
mod _rewrite + PHP . Идея данной
защиты очень проста:
mod _rewrite перенаправляет все
запросы идущие к папке image, а
php- скрипт, в зависимости от
типа запрашиваемого файла,
решает , что с ним делать –
накладывать копирайт , если это
изображение или не стоит, если
это файл. Единственным
минусом данного подхода
является то, что все защищаемые
изображения нужно хранить в
отдельной папке, что бы
mod _rewrite мог определить ,
нужно или нет защищать данное
изображение . Если же вы вдруг
захотите \"пометить \" все
изображения на сайте, то
приготовьтесь к тому, что от
вашего графического дизайна,
ничего на останется – все будет
усеяно вашими копирайтами .
И так , реализация данной защиты
изображений на сайте проста, так
же как и сама идея . Для начала
дописываем в . htaccess пару
строчек :
RewriteEngine on
RewriteBase /
Options + FollowSymlinks
RewriteRule ^ image /
( . *) image . protect. php?
img_ name = $ 1
После добавления этих строчек
в . htaccess все запросы идущие к
папке image будут автоматически
перенаправляться на php -скрипт,
в переменной $ img_ name с
указанием оставшейся части пути
к файлу .
PHP -скрипт тоже не слишком
сложен для понимания, в нем
реализованы функции защиты
для основных типов
изображений , который в
основном используются в
интернете :

                        
<? php
/
* Функция для наложения на изображение своего копирайта в виде текста * /
/
* для использования других шрифтов используйте imageloadfont
() */
function img_ nalogenie (&
$ im , $ img_ info )
{
if ( $img _info
[ 0 ]>50 and $img _info
[ 1 ]>20 ) /
* проверка , влезит ли надпись * /
{
$ green = imagecolorallocate ( $ im, 0 , 255 , 0 ); / / установка зеленого цвета
imagestring( $ im , /
* наше изображение * /
2, /
* id шрифта ( 0 - 5 -
системные ), остальные грузятся через imageloadfont
() */
5, /
* смещение по X * /
5, /
* смещение по Y * /
"(c ) wm-
help . net" , /
* защитная надпись на изображении */
$green ); /
* цвет выводимого текста * /
}
}
if (isset ( $ img_ name ))
{
$ img_ name = "image / " . $ img_ name ; /
* дополнение пути * /
$ info = @getimagesize
( $ img_ name ); /
* получение информации о изображении * /
$ ext = @ $info [ 2 ]; /
* тип изображения */
$ header = @ $ info
[ " mime " ]; /
* правильный заголовок для использования в header
() */
switch ( $ext ) /
* выбор способа открытия по типу изображения * /
{
case 1 : / / GIF
{
$ im = @imagecreatefromgif
( $ img_ name ); /
* попытка открыть */
if ( $ im) /
* Открылось или нет * /
{
header
( " Content-
type : " . $ header); /
* отправляем заголовок * /
img_ nalogenie
( $ im, $ info ); /
* накладываем свой текст на изображение * /
imagegif
( $ im); /
* выводим изображение в браузер * /
}
break;
}
case 2 : / / JPG
{
$ im = @imagecreatefromjpeg
( $ img_ name );
if ( $ im)
{
header
( " Content-
type : " . $ header);
img_ nalogenie
( $ im, $ info );
imagejpeg
( $ im);
}
break;
}
case 3 : / / PNG
{
$ im = @imagecreatefrompng
( $ img_ name );
if ( $ im)
{
header
( " Content-
type : " . $ header);
img_ nalogenie
( $ im, $ info );
imagepng
( $ im);
}
break;
}
case 6 : / / BMP
{
$ im = @imagecreatefromwbmp
( $ img_ name );
if ( $ im)
{
header
( " Content-
type : " . $ header);
img_ nalogenie
( $ im, $ info );
imagewbmp
( $ im);
}
break;
}
default: /
* если ничего не подошло * /
{
$ f = @ file
( $ img_ name ); /
* пробуем считать файл * /
if ( $ f ) /
* если файл считался * /
{
echo implode
( "" , $ f ); /
* выводим массив строкой * /
}
break;
}
}
}
? >
Ну а для тех , у кого по какой- то
причине данная защита
изображений на всем сайте не
работает, советую проверить:
установлен ли на вашем хостинге
mod _rewri
3 11 0
Без комментариев...