PHP GD — добавить цветовой слой поверх изображения

Я хочу добавить цветной слой поверх изображения в php, используя gd.

Это изображение: Образ

Я хочу наложить это на этот цвет: # ABD0D2

Я сделал быстрое изображение, как это должно выглядеть в конце.
Имейте в виду, что изображение должно быть прозрачным
введите описание изображения здесь

Пока у меня есть этот код:

$img = imagecreatefrompng('image.png');

imagesavealpha($img, true);
imagefill($img, 0, 0, imagecolorallocatealpha($img, 0, 0, 0, 127));

// make overlay with new color???

imagepng($img, 'new.png');
imagedestroy($img);

0

Решение

Вы можете создать новое изображение, заполненное вашим целевым цветом, а затем объединить два:

$img = imagecreatefrompng('image.png');
$w = imagesx($img);
$h = imagesy($img);
imagesavealpha($img, true);

$img2 = imagecreatetruecolor($w, $h);
imagefill($img2, 0, 0, imagecolorallocatealpha($img, 0xAB, 0xD0, 0xD2, 64));

imagecopy($img, $img2, 0, 0, 0, 0, $w, $h);

imagepng($img, 'new.png');
imagedestroy($img);
imagedestroy($img2);

Результат:

введите описание изображения здесь

Мне не совсем понятно, как вы хотите поддерживать прозрачность (так как ожидаемое изображение не прозрачно), поэтому в приведенном выше коде я установил цвет маски в непрозрачность 50%.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]