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