У меня есть изображение в формате JPEG, я хочу использовать php GD для создания 2 блоков.
Левое поле удалит фон и установит прозрачность
Правая коробка установит rgba — альфа 80%;
и сохранить его в PNG Transparance
Я пробовал imagesetpixel, но не прозрачный,
Я также попробую imagecolortransparent
$transparentcolour = imagecolorallocate($im, 40,220,1);
imagecolortransparent($image, $transparentcolour);
но это превратит все в прозрачный в этом цвете.
Кто-нибудь знает, как этого добиться?
Прямой прозрачный легко:
Отключить альфа-смешивание
Выделите цвет альфа — лично я использую (255,0,255,127)
потому что пурпурный — это «стандартный» прозрачный цвет при работе с игровыми спрайтами, так что я просто застрял с ним
Нарисуйте прямоугольник
Результатом будет блок прозрачности.
Ссылка на функцию: imagealphablending
, imagecolorallocatealpha
, imagefilledrectangle
«Исчезнуть на 80%» будет сложнее.
Отключить альфа-смешивание
Для каждого (x,y)
в прямоугольнике … (т.е. два вложенных for
петли)
Получить цвет этого пикселя (imagecolorat
а также imagecolorsforindex
должно помочь)
Умножение $color['alpha']
от 0.2
на 80% исчезают
Выделите новый цвет с тем же RGB
как источник, но с новым A
значение
Нарисуй пиксель
Результатом будет блок из 80% -перецветших к прозрачным пикселям.
Ссылка на функцию: imagealphablending
, imagecolorat
, imagecolorsforindex
, imagecolorallocatealpha
, imagesetpixel
Других решений пока нет …