Создание водного знака на лету php

Исходный код для наложения водного знака на изображение, не меняя самого изображения.

//создадим файл watermark.php

header('content-type: image/jpeg'); 


// получаем имя изображения через GET

$image_path = str_replace("http://".$_SERVER['HTTP_HOST'].'/',$_SERVER['DOCUMENT_ROOT'].'/',$_GET['image']);


// создаём водяной знак

$watermark = imagecreatefrompng('image/data/watermark.png');   


// получаем значения высоты и ширины водяного знака

$watermark_width = imagesx($watermark);

$watermark_height = imagesy($watermark);  

$size = getimagesize($image_path);

$info = array(

'width'  => $size[0],

'height' => $size[1],

'bits'   => $size['bits'],

'mime'   => $size['mime']

);

//Создаем изображение

if ($info['mime'] == 'image/gif') {

$image =  imagecreatefromgif($image_path);

} elseif ($info['mime'] == 'image/png') {

$image = imagecreatefrompng($image_path);

} elseif ($info['mime'] == 'image/jpeg') {

$image = imagecreatefromjpeg($image_path);

} else {

return;

}

//если не получилось, завершаем

if ($image === false) {

    return false;

}

$size = getimagesize($image_path);

// помещаем водяной знак на изображение

$dest_x = $size[0] - $watermark_width - 200;

$dest_y = $size[1] - $watermark_height - 200;


imagealphablending($image, true);

imagealphablending($watermark, true);

// создаём новое изображение

imagecopy($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height);

if ($info['mime'] == 'image/png') {

imagealphablending($image, false);

imagesavealpha($image, true);

}


$info = pathinfo($image_path);

$extension = strtolower($info['extension']);

if ($extension == 'jpeg' || $extension == 'jpg') {

imagejpeg($image, $image_path, 90);

} elseif($extension == 'png') {

imagepng($image, $image_path, 0);

} elseif($extension == 'gif') {

imagegif($image, $image_path);

}

// освобождаем память

imagedestroy($image);

imagedestroy($watermark);

Применение:

<img src="watermark.php?image=http://site.ru/image/original.jpg" />
Комментарии к статье
Защита от роботов

php