Добавляем динамический водяной знак на изображение средствами PHP

В некоторых случаях добавлять водяные знаки на изображения, которые вы размещаете на своем сайте – это единственный способ хоть как-то защитить их от воровства. К тому же поговаривают, что такие вот водяные знаки привлекают дополнительный трафик.

Есть много способов сделать водяной знак на изображении с помощью PHP, но вот моему заказчику потребовался способ нанесения, который позволял бы в любое время поменять водяной знак на новый.

Как оказалось, такое решение есть.

Обычно таким пользуются люди, которые разрабатывают сайты с большей частью графическим контентом.

Выбор способа нанесения водяного знака

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

В моем случае заказчик оставляет за собой право провести в любое время ребрендинг и вместо “Рога и Копыта” написать “Копыта и Рога”. Выбранные способ нанесения водяных знаков должен стерпеть и это.

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

Если у кого-то есть более простой способ, то милости прошу в комментарии. Будет интересно послушать.

До приведения какого-то кода хотелось бы описать достоинства, а также привести рабочий пример.

Плюсы:

  • можно менять водяной знак хоть 500 раз на дню;
  • можно развернуть в любой CMS (к ней она никак не привязана).

Минусы:

  • зависит от производительности хостинга (если у Вас много изображений или они большого разрешения, то это может оказать значительную нагрузку на сервер);
  • пытливый ум все таки сможет убрать ваш водяной знак.

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

Пример

Реализация нанесения водяного знака с помощью PHP

Как и обещал для этого не нужно обладать какими-то особыми знаниями, необходимо:

  1. файл image.php, который находится в архиве, и поместить в корневую директорию вашего сайта;
  2. изображение, которое будет выступать в роли водяного знака, помещаем в корневую директорию сайта и обзываем watermark.png (в моем случае это белый мазок кисти, поэтому по ссылке он может быть не различим на фоне вашего браузера). Изображение должно быть именно PNG, так как в нем есть прозрачный слой. Если хотите использовать GIF, то необходимо редактировать файл image.php;
  3. в том месте, где нужно вывести изображение с водяным знаком, помещаем код:
    <img src="image.php?image=images/372.jpg" alt="" />

Вот и всё. Все довольны, и Вы, и заказчик.

Комментарии:

  1. wrunishka опубликовал комментарий 27 Май 2012, 23:28 #

    Скажите, пожалуйста, что поменять в коде, чтобы водяной знак “одевался” не только на изображений .jpg, но и на jpeg и прочие?

    | Ответить
    • Mut@NT опубликовал комментарий 28 Май 2012, 05:51 #

      wrunishka: Скажите, пожалуйста, что поменять в коде, чтобы водяной знак “одевался” не только на изображений .jpg, но и на jpeg и прочие?

      Да вроде должно с JPEG работать и так, как говориться, “из коробки”.

      | Ответить
      • wrunishka опубликовал комментарий 28 Май 2012, 12:24 #

        Чёт не хочет =(

        | Ответить
        • Mut@NT опубликовал комментарий 27 Июнь 2012, 12:58 #

          Простите, я пропустил пункт №2. Уже добавил в статью

          | Ответить
  2. Vova опубликовал комментарий 1 Август 2014, 17:19 #

    Пытливы ум и в этом случае легко выловит оригинал картинки, по скольку на оригинале изображения нет водяного знака,
    Пример :
    http://adminway.ru/images/372.jpg

    | Ответить
    • itshaman опубликовал комментарий 3 Август 2014, 21:16 #

      Тут Вы правы))

      | Ответить
  3. ООО Главный БОСС опубликовал комментарий 4 Декабрь 2014, 20:30 #

    Ну это не серьезно, если в юрл виден путь папки с исходными картинками – бесполезная затея.

    | Ответить
Имя
e-mail
Сайт
Текст комментария: