У меня есть приложение для iPhone, которое обрабатывает изображения посредством смешивания двух объектов UIImage
через CoreGraphics, в частности CGContextSetBlendMode
. В настоящее время я изучаю его перенос на Android. Я прошел процесс объединения объектов Bitmap
на Android, используя режимы PorterDuff. Тем не менее, я хочу намного усложнить композитинг. Например, я использую kCGBlendModeHardLight
для многих смесей:
Либо умножает, либо экранирует цвета, в зависимости от образца исходного изображения цвет. Если образец исходного изображения цвет светлее, чем на 50% серый, фон освещен, аналогичен скрининг. Если образец исходного изображения цвет более темный, чем 50% серый, фон темнеет, подобно множатся. Если исходное изображение цвет образца равен 50% серого, Исходное изображение не изменяется. Образ образцы, равные чистому черному или чистый белый результат в чистом черном или белый. Общий эффект аналогичен к тому, что вы достигли, блестя резкий прожектор на исходном изображении. Используйте это, чтобы добавить основные моменты в сцену.
Но не знаю в любом случае (если это вообще возможно) подражать этому через Портера-Даффа. Не поддерживает ли Android более совершенные алгоритмы Image Manipulation? Можно ли каким-то образом использовать Porter-Duff для эмуляции более продвинутых режимов наложения?
В дополнение к уравнениям смешивания 12 Porter-Duff, Android поддерживает Lighten, Darken, Multiply, Screen и скоро Overlay. К сожалению, это означает, что HardLight недоступен, и вам придется реализовать его самостоятельно.