Наложение PNG картинок с прозрачностью

Рецепт №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);
Рассказать друзьям:


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*