2010-09-17 13 views
6

Estoy buscando una forma de agregar modos de fusión más avanzados a mi programa (los que yo mismo podría definir). ¿Cómo sugeriría hablar de esto con Android?Android Blend Modes

Configurar píxeles individualmente es demasiado lento para ser una solución viable.

+0

Esto también tiene que ser una solución utilizando el sistema de representación Canvas, no openGL. – GuyNoir

+0

Hola, hice una pregunta relacionada acerca de cuántos píxeles puede dibujar Android y mantener la velocidad de actualización de la pantalla. ¿Cuántos píxeles está dibujando en cada pantalla y cómo están obteniendo fps? –

+0

Realmente no tengo ni idea sobre el FPS, pero estaba intentando establecer una imagen de 50x50 varias veces (algo entre 40 y 50 veces), y fue extremadamente lento. Es una herramienta de difuminado por lo que la operación debe aplicarse a cada pocos píxeles a lo largo de una línea dibujada. – GuyNoir

Respuesta

2

Para se honesto, no estoy seguro de que esto sea compatible. Usando OpenGL como ejemplo, los modos de fusión están definidos por la especificación de OpenGL ES, por lo que pueden implementarse potencialmente en hardware. Agregar su propia función de mezcla sería romper la especificación, por no mencionar que es increíblemente lenta, porque tendría que actuar píxel por píxel.

No estoy tan seguro de lienzo, pero creo que tampoco puede hacerlo allí, por motivos similares.

-1

Android es compatible con un subconjunto de OpenGL. Esa sería la ruta a seguir si estás buscando velocidad.

+2

Esto realmente no aborda la pregunta. – num1

2

Es posible incluso sin OpenGL. PorterDuff debe ser la solución:

android.graphics.PorterDuffXfermode

y

android.graphics.PorterDuff

Aquí es un muy buen ejemplo:

http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/Xfermodes.html

+2

El problema es que no puedo agregar un xFermode personalizado. Por ejemplo, aclarar, oscurecer, saturar, etc. – GuyNoir

+0

@GuyNoir aligerar y oscurecer ya están definidos (ver PorterDuff.Mode). –

Cuestiones relacionadas