Android ColorFilter -Porter-Duff Modes

Я пытаюсь решить проблему с андроидом ColorFilters. Документация очень скудная, поэтому основной метод — пробовать разные варианты.

Проблема:

Есть Bitmap. У одних пикселей альфа=255, у других альфа=0. Я пытаюсь нарисовать круг определенным цветом. Я хочу, чтобы альфа-канал не изменился в растровом изображении, но при рисовании я хочу умножить цвет на растровое изображение-альфа.

Итак, при рисовании круга я хочу, чтобы пиксели с альфа=0 не окрашивались, а пиксели с альфа=255 окрашивались в нужный мне цвет. Альфа-канал не должен меняться.

Я пытаюсь использовать класс porter-duff ColorFilter (PorterDuffColorFilter в android sdk).

слишком много режимов и нет -понятного описания на официальном сайте здесь:http://developer.android.com/reference/android/graphics/PorterDuff.Mode.html

Думаю, мне следует использовать DST_ATOPили SRC_ATOP, но они не работают так, как я описал.

Также в конструкторе porter-duff colorfilter есть странный параметр srcColor.

Не могу понять, что означают "Sa" и "Sc" в формулах [Da, Sc * Da + (1 - Sa) * Dc]. Это может быть цвет, который был передан в конструктор цветового фильтра, а также цвет, установленный с помощью "paint.setColor".

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

14
задан Jave 20 April 2012 в 11:59
поделиться