Какой режим в Android PorterDuffXfermode(PorterDuff.mode.[type]) выполняет альфа-смешение в соответствии с формулой спецификации изображения WebP
Я пытаюсь смешать два растровых изображения с помощью метода альфа-смешивания, указанного в спецификации контейнера WebP. Мой код извлекает кадры и скорее отображает их. Я пытаюсь создать растровое изображение для каждого кадра. Как мы знаем, декодер рисует кадры поверх просмотра, используя различную информацию, хранящуюся в этом анимированном веб-изображении, но мы создаем растровые изображения, поэтому нам нужно выполнить некоторые операции, чтобы каждый кадр выглядел так, как будто он отображается поверх компонента просмотра кодером/декодером. Все работает нормально, но застрял с флагом смешивания, который хранит значение 1 бит. где 0 означает, что альфа-смешение должно использоваться для смешивания текущего кадра с предыдущим кадром, а 1 означает отсутствие смешивания.
Я пытаюсь узнать, какой режим класса PorterDuff в Android выполняет альфа-смешение в соответствии с данной формулой. Спецификация контейнера WebP Google предлагает эту формулу альфа-смешивания.
blend.A = src.A + dst.A * (1 - src.A / 255)
if blend.A = 0 then
blend.RGB = 0
else
blend.RGB =
(src.RGB * src.A +
dst.RGB * dst.A * (1 - src.A / 255)) / blend.A
Меня смущает, какой режим даст точные или похожие результаты в соответствии с этой формулой.
Я использовал SRC_OVER, и он просто рисует растровое изображение поверх другого растрового изображения. Хотя эти изображения имеют одинаковое значение альфа для всех пикселей, поэтому я не могу быть уверен, выполняется ли альфа-смешение или нет. Я видел проект на gitub, который использует SRC и SRC_OVER для альфа-смешивания. как содержит флаг смешивания.
WEBP Encoder под названием APNG4Android использовал режим SRC_OVER и SRC для альфа-смешивания. (как говорит документ, бит флага смешивания будет равен 1 - нет смешивания и 0 - альфа-смешивание), поэтому коды чтения, я думаю, SRC_OVER используется для альфа-смешивания, а SRC - для отсутствия смешивания. Это тот кодовый блок