Рецепт №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. Она позволяет копировать часть изображения и накладывать его на другое изображение. А также при наложении есть возможность задавать прозрачность, для копируемого изображения.