PHP GD превращает фон в прозрачный или альфа

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

У меня есть изображение в формате JPEG, я хочу использовать php GD для создания 2 блоков.

  1. Левое поле удалит фон и установит прозрачность

  2. Правая коробка установит rgba — альфа 80%;

и сохранить его в PNG Transparance

Я пробовал imagesetpixel, но не прозрачный,

Я также попробую imagecolortransparent

$transparentcolour = imagecolorallocate($im, 40,220,1);
imagecolortransparent($image, $transparentcolour);

но это превратит все в прозрачный в этом цвете.

Кто-нибудь знает, как этого добиться?

0

Решение

Прямой прозрачный легко:

  1. Отключить альфа-смешивание

  2. Выделите цвет альфа — лично я использую (255,0,255,127) потому что пурпурный — это «стандартный» прозрачный цвет при работе с игровыми спрайтами, так что я просто застрял с ним

  3. Нарисуйте прямоугольник

Результатом будет блок прозрачности.

Ссылка на функцию: imagealphablending, imagecolorallocatealpha, imagefilledrectangle


«Исчезнуть на 80%» будет сложнее.

  1. Отключить альфа-смешивание

  2. Для каждого (x,y) в прямоугольнике … (т.е. два вложенных for петли)

    1. Получить цвет этого пикселя (imagecolorat а также imagecolorsforindex должно помочь)

    2. Умножение $color['alpha'] от 0.2 на 80% исчезают

    3. Выделите новый цвет с тем же RGB как источник, но с новым A значение

    4. Нарисуй пиксель

Результатом будет блок из 80% -перецветших к прозрачным пикселям.

Ссылка на функцию: imagealphablending, imagecolorat, imagecolorsforindex, imagecolorallocatealpha, imagesetpixel

1

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

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

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