Estoy tratando de resolver un problema con android ColorFilters
. La documentación es muy pobre, por lo que el método principal es probar diferentes variantes.Android ColorFilter - Porter-Duff Modes
El problema:
Hay un mapa de bits. Algunos píxeles tienen alfa = 255, otros tienen alfa = 0. Estoy tratando de dibujar un círculo con un color específico. Quiero que el canal alfa no se modifique en el mapa de bits, pero al dibujar quiero multiplicar un color en el mapa de bits alfa.
Por lo tanto, al dibujar un círculo, quiero que los píxeles con alfa = 0 no se pinten, pero los píxeles con alfa = 255 se pinten en el color que yo quiera. El canal alfa no debe cambiar.
Estoy tratando de utilizar Porter-duff ColorFilter (clase PorterDuffColorFilter en sdk para Android).
hay demasiados modos y no-comprensible descripción en el sitio oficial aquí: http://developer.android.com/reference/android/graphics/PorterDuff.Mode.html
Creo que debería utilizar DST_ATOP
o SRC_ATOP
, pero no funcionan como he descrito.
Además, hay un parámetro extraño srcColor
en el constructor de porter-duff colorfilter.
No entiendo qué significa "Sa" y "Sc" en las fórmulas [Da, Sc * Da + (1 - Sa) * Dc]
. Puede ser del color que se pasó al constructor del filtro de color y también puede ser el color configurado por "paint.setColor".
¿Alguien sabe cómo funciona?
Puede google portero duff para ver lo que significan estos modos. – Renard
Este excelente documento explica los modos PorterDuff con imágenes: http://ssp.impulsetrain.com/porterduff.html Solo tenga en cuenta que no agrega "src_" como lo hace Android: entonces "IN" = "SRC_IN" –