Actionscript 3.0: Mostrar imagen en blanco y negro con ColorMatrixFilter

Actionscript 3.0: Mostrar imagen en blanco y negro con ColorMatrixFilter

Etiquetas: ColorMatrixFilter filters

Imagen en reemplazo de flash

La clase ColorMatrixFilter de Actionscript 3.0 permite aplicar una transformación a los valores de color y alfa de cada pixel de una imagen. Se puede aplicar sobre cualquier objeto que herede de la clase DisplayObject (es decir MovieClip, SimpleButton, TextField...).

Los filtros ColorMatrixFilter, se crean a partir de una matriz de transformación de 4x5, con lo valores de modificación que queremos aplicar a cada canal. Por ejemplo, si tenemos la matriz:

  1.  
  2. private var rLum:Number = 0.2225;
  3. private var gLum:Number = 0.7169;
  4. private var bLum:Number = 0.0606; 
  5.  
  6. private var bwMatrix:Array = [rLum, gLum, bLum, 0, 0,
  7.                               rLum, gLum, bLum, 0, 0,
  8.                               rLum, gLum, bLum, 0, 0,
  9.                               0, 0, 0, 1, 0]; 
  10.  

Podemos crear un filtro con ella, asi:

  1.  
  2. var filtroBW:ColorMatrixFilter 
  3. filtroBW = new ColorMatrixFilter(bwMatrix);
  4.  

y aplicarlo a un MovieClip (que en este caso está en el escenario con el nombre Imagen2_mc):

  1.  
  2. Imagen2_mc.filters = [filtroBW]
  3.  

De esta manera, hacemos que el contenido de Imagen2_mc aparezca en blanco y negro, pero podemos modificar los valores de bwMatrix para obtener otros efectos.

El código completo y los fuentes, son estos:


  1. package 
  2. {
  3. 	import flash.display.MovieClip;
  4. 	import flash.filters.ColorMatrixFilter;
  5.  
  6. 	public class BW extends MovieClip
  7. 	{
  8.  
  9. 		private var rLum:Number = 0.2225;
  10. 		private var gLum:Number = 0.7169;
  11. 		private var bLum:Number = 0.0606; 
  12.  
  13. 		private var bwMatrix:Array = [rLum, gLum, bLum, 0, 0,
  14. 						rLum, gLum, bLum, 0, 0,
  15. 						rLum, gLum, bLum, 0, 0,
  16. 						0, 0, 0, 1, 0]; 
  17.  
  18. 		private var filtroBW:ColorMatrixFilter 
  19.  
  20. 		public function BW():void
  21. 		{
  22. 			filtroBW = new ColorMatrixFilter(bwMatrix);
  23. 			Imagen2_mc.filters = [filtroBW]
  24.  
  25. 		}
  26. 	}
  27.  
  28. }

Descargar archivos

Comentarios
    • Autor
    • anonimo
    como se regrasaria al color original????????
    • Autor
    • Moryarti
    Para regresar al color original: ---------- Imagen2_mc.filters = []; ------------- Quita todos los filtros de la imágen.
Dejar un comentario
Tu nombre (obligatorio):

E-mail (obligatorio, no se mostrará):

Web:

Comentario: