Эффект непрозрачности с использованием расширения PHP GD - PullRequest
0 голосов
/ 07 февраля 2012

Интересно, возможно ли иметь эффект «непрозрачности» при рисовании изображений поверх других изображений с расширением PHP GD?Существуют ли какие-либо встроенные функции, которые могут получить желаемые результаты, или я должен пойти на собственную реализацию, используя imagesetpixel way?

Псевдокод, иллюстрирующий то, что я пытаюсь сделать прямо сейчас:

// Background image
$image_bg = imagecreatetruecolor(100, 100);
imagesavealpha($image_bg, true);

// Making background image fully transparent
imagefill($image_bg, 0, 0, imagecolorallocatealpha($image_bg, 0, 0, 0, 127));

// Now the actual image I want to draw with opacity (true color PNG)
$image = imagecreatefrompng(...);

// Drawing with 50 "merge" value
imagecopymerge($image_bg, $image, ..., 50);

Проблема с приведенным выше кодом заключается в том, что imagecopymerge не будет учитывать альфа-значение фонового изображения и объединит изображение с фоном, как если бы оно было непрозрачным черным цветом (полученное изображение не будет 50% прозрачный).

Редактировать: В итоге я реализовал свою собственную функцию, используя imagecolorat и imagesetpixel way.

1 Ответ

0 голосов
/ 07 февраля 2012
...