Рецепт №102. Из книги «128 рецептов php»
Перейти к оглавлению
Водяным знаком может служить текст или картинка. Как накладывать текст, можно почитать в предыдущих рецептах, а как наложить на одно изображение другое, описано ниже.
При наложении водяных знаков, накладываемой картинке задается прозрачность 40-60%.
В примере, приведенном ниже, водяному знаку будет задана прозрачность 60% и размещен он будет в нижний правый угол.
Пример:
// исходная картинка
$img = "test.jpg";
// получаем размер картинки
$size = getimagesize($img);
$height = $size[1]; // высота
$width = $size[0]; // ширина
// картинка, которая будет использована
// в качестве водяного знака
$watermark_src = 'watermark.png';
// получаем размер водяного знака
$sizeWM = getimagesize($watermark_src);
$heightWM = $sizeWM[1]; // высота водяного знака
$widthWM = $sizeWM[0]; // ширина водяного знака
// задаем прозрачность водяного знака
$opacity = 60;
//Загружаем изображения
$image = imagecreatefromjpeg($img);
$watermark = imagecreatefrompng($watermark_src);
// высчитываем координаты, для водяного знака.
// Внизу справа
$x = $width - $widthWM;
$y = $height - $heightWM;
//Копируем водяной знак на изображение
imagecopymerge(
$image, $watermark, $x, $y, 0, 0, $widthWM, $heightWM, $opacity);
// задаем заголовок, чтоб вывести результат в браузере
header('Content-Type: image/jpeg');
// выводим картинку
imagejpeg($image);
// очищаем память
imagedestroy($image);
imagedestroy($watermark);
В примере, была использована, ранее не описанная функция — imagecopymerge. Она позволяет копировать часть изображения и накладывать его на другое изображение. А также при наложении есть возможность задавать прозрачность, для копируемого изображения.
