Comunidad de diseño web y desarrollo en internet online

Detectar y cambiar color en un Bitmap.

Citar            
MensajeEscrito el 23 May 2012 07:39 pm
Hola muy buenas. ¿Cómo estamos? Espero que bien, jeje. Bueno, pues tengo un reto-duda que probablemente me sepáis solucionar. El caso es que me interesaría hacer lo siguiente:

Tengo un MovieClip con un Bitmap de fondo, el cual, al ser una imagen, tiene múltiples colores, pero para no complicarnos la vida, supongamos que es una imagen manga como esta:



Aquí se ve perfectamente definido los distintso colores que forman la figura, a simple vista detectamos dos tipos de rojo y esto. Bien, hasta aquí imagino que bien, pero ahora llega la gran pregunta. Imagináos que queréis cambiar el color rojo de la ropa, que ha de ser un color hexadecimal, por otro, por ejemplo, un tono verde. ¿Cómo lo haríais?

La respuesta es muy sencilla, con getPixel y setPixel de las modificaciones Bitmap, ambos definidos aquí:

http://help.adobe.com/en_US/AS2LCR/Flash_10.0/help.html?content=00000791.html
http://help.adobe.com/en_US/AS2LCR/Flash_10.0/help.html?content=00000803.html

Pero claro, si lo quiero hacer de una tacada, y no con un for(); por motivos de recursos del sistema pues, supongamos un reto más, la imagen varía constantemente, es decir, que si vamos a 24 fotogramas por segundo, la imagen ha de cambiar y cambiar su color 24 veces por segundo. ¿Se os ocurre algo? Está claro que con un for(); solo íbamos a sobrecargar el sistema.

Yo he pensado en algún método que tenga Flash para detectar los focos de color, tal como tiene con la barita mágina en el mismo Flash, pero programado acorde a una imagen en ActionScript 1 o 2, pero claro, me he matado a buscar y no encontré solución. ¿Se os ocurre algo?

Muchas gracias de antemano, y si se me ocurre algo lo expondré ;-). ¡Un saludazo!

Por miglug

Claber

113 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 23 May 2012 08:56 pm
¿Animaciones basadas en bitmap de las que quieres cambiar los pixeles dinamicamente a 24 FPS? Es overkilling, y probablemente simplemente tu peli se congele. Se puede aplicar filtros, o incluso usar un threshold para cambiar rangos enteros, pero detectar zonas y cambiarlas no lo veo viable, pues para eso existen los vectoriales (en donde el color se modifica a nivel de objeto, no pixel a pixel)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 23 May 2012 09:55 pm
Hola solisarg, ante todo, mil gracias por responderme tan tan rápido como siempre, jaja. Como se dice con otras muchas cosas "solisarg nunca falla" ;-). Bueno, al grano, el tema es que estuve pensando mucho mucho mucho, y no, no veo salida al tema yo tampoco por este lado, solo lo veo a base de getPixel y setPixel, pero claro, la única manera sería a base de filtros, pero estos cambiarían la configuración de mi Flash y no podría ser. Lo veo en un imposible. ¡Snif! De todas todas, encontré una posible solución a base de setMask y una precarga única tras la cual, en base a una configuración sencilla, aparezca como una única imagen a la que le puedes cambiar los colores a tu antojo según tonos del píxel, aunque es una liada descomuncal, pero por intentar... ¿No? Jajaja. Muchas gracias solisarg. Si por casualidad se me ocurre algo os lo posteo ;-)

Por miglug

Claber

113 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.