Внеэкранное альфа-смешение - PullRequest
0 голосов
/ 09 марта 2012

есть ли решение для следующей проблемы? У меня есть два исходных изображения, оба имеют одинаковый размер, и оба хранятся в виде простых массивов памяти пикселей ARGB с 32 битами на пиксель (8 бит на компонент цвета и 8 бит для информации альфа-канала (прозрачность)).

Случай 1: Я рисую эти два изображения (с альфа-смешиванием) к изображению назначения. Я сначала рисую изображение № 1, а затем изображение № 2.

Случай 2: Теперь я хочу достичь следующего: вместо того, чтобы рисовать изображение № 1 и изображение № 2 в целевом изображении одно за другим, я хочу создать новое временное изображение, изображение № 3, которое представляет собой комбинацию изображения № 1 и изображение № 2. Рисование изображения № 3 до конечного изображения должно дать ТОЧНО тот же результат, что и операции, выполненные в случае 1 выше.

Возможно ли это вообще? То есть создание промежуточного изображения из изображений № 1 и № 2, которое - при обращении к целевому изображению - даст точно такие же результаты, как если бы изображения № 1 и № 2 были нарисованы к целевому изображению одно за другим? Если это возможно, какие алгоритмы мне нужны? Если точная репликация невозможна, есть ли способ приблизить эту операцию?

Спасибо

РЕДАКТИРОВАТЬ: Чтобы сделать это немного яснее: я разрабатываю для специальной аппаратной установки, где Alphablending для дисплея чрезвычайно дорого. Вот почему я хотел бы объединить это в как можно меньше звонков. В случае 1 я должен сделать альфа-смешивание дважды: сначала изображение # 1 смешивается с поверхностью назначения, а затем изображение # 2 смешивается с поверхностью назначения. На моей конкретной установке оборудования это очень дорого. Вот почему я хотел бы сначала создать промежуточное изображение № 3, а затем просто смешать изображение № 3 с поверхностью назначения. Таким образом, мне нужно вызвать дорогую процедуру смешивания только один раз. Поэтому мой вопрос: возможно ли как-то создать это изображение № 3 из изображений № 1 и № 2, чтобы результат выглядел точно так же?

...