Watermark (с английского переводится как «водяной знак») – это логотип или текст, который наносится на цифровые изображения (скриншоты, рисунки, фотографии), а также видео с целью идентификации автора и соответственно защиты продукта от несанкционированного использования.
Сегодня я хочу рассмотреть простенький php-скрипт с помощью которого можно добавить ватермарк на любое изображение.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | <?php header('content-type: image/jpeg'); // получаем имя изображения через GET $image = $_GET['image']; // создаём ватермарк $watermark = imagecreatefrompng('logo.png'); // получаем значения ширины и высоты ватермарка $watermark_width = imagesx($watermark); $watermark_height = imagesy($watermark); // создаём jpg изображение $image_path = $image; $image = imagecreatefromjpeg($image_path); // проверяем всё ли в порядке if ($image === false) { return false; } $size = getimagesize($image_path); // задаём координаты ватермарка на изображении $dest_x = $size[0] - $watermark_width - 5; $dest_y = $size[1] - $watermark_height - 5; imagealphablending($image, true); imagealphablending($watermark, true); // создаём новое изображение с ватермарком imagecopy($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height); imagejpeg($image); // освобождаем память imagedestroy($image); imagedestroy($watermark); ?> |
где:
функции imagecreatefrompng и imagecreatefromjpeg — отвечают за создание нового изображения из файла или URL;
функции imagesx и imagesy — возвращают ширину и высоту изображения;
функция getimagesize — получение размера изображения;
функция imagealphablending — задаёт режим сопряжения цветов для изображения, определяет насколько сильно цвет нижележащего слоя будет просачиваться через накладываемое изображение.
функция imagecopy — отвечает за копирование части изображения;
функция imagejpeg — выводит изображение в браузер или пишет в файл;
функция imagedestroy — освобождает память, занятую изображением.
Для того, чтобы показать картинку на которую будет добавлен ватермарк, необходимо использовать следующий код:
<img src="watermark.php?image=name.jpg" alt="Description" /> |
При этом исходное изображение изменено не будет.
Пример работы скрипта можно посмотреть здесь.
Скачать все файлы примера PHP_Example1.zip
А Вы добавляете watermark к изображениям на своём сайте?
Забрал, пригодится. Как раз пишу сейчас свою узкую хендмейд цмску, там вотермарк не помешает
А если ватермарк не в png?
Используйте соответственно функции: imagecreatefromgif или imagecreatefromjpeg, в зависимости от того какой у Вас формат файла.
Функции для работы с изображениями: http://www.php.net/manual/ru/ref.image.php
Так это уже совсем другой срикпт получится. Для JPEG нужно подключать отдельную библиотеку и использовать запрет на вывод ошибок.
Я это просто к тому веду, что хотелось бы видеть готовый полнофункциональный пример(если уже статья об этом), а не просто заглушку, что-то вроде додумай сам.