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

8 октября 2013 | Автор: | Категория: JQuery и PHP

Watermark (с английского переводится как «водяной знак») – это логотип или текст, который наносится на цифровые изображения (скриншоты, рисунки, фотографии), а также видео с целью идентификации автора и соответственно защиты продукта от несанкционированного использования.
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 к изображениям на своём сайте?

Метки: 

Для этой страницы комментарии закрыты.