Comunidad de diseño web y desarrollo en internet online

Eliminar el color a un bitmapData

Citar            
MensajeEscrito el 20 Mar 2008 04:46 pm
Hola a todos:

Me gustaría saber si es posible eliminar por completo el color a un objeto BitmapData.

Ya se que puedo hacer esto:

Código :

var mat:Array = [ .33,.33,.33, 0, 0,
                  .33,.33,.33, 0, 0,
                  .33,.33,.33, 0, 0,
                    0,  0,  0, 1, 0 ]; 
var colorMat:ColorMatrixFilter = new ColorMatrixFilter(mat);

y luego a la imagen de tipo Bitmap que contiene el BitmapData aplicarle el filtro:

Código :

.....
.....
imagen.filters = [colorMat];

De este modo la imagen que se muestra en pantalla aparece en blanco y negro, pero el BitmapData de esa imagen sigue estando en color, por lo que si, por ejemplo, le aplico el filtro "Diferencia" a dos imágenes que he puesto en blanco y negro mediante esta técnica, en realidad se lo estaría aplicando a las imágenes originales en color :(

¿Como podría hacer para que los BitmapData pierdan toda la información del color y aparezcan en escala de grises?

¡Buff! perdón por el rollo que acabo de soltar; espero haberme explicado.

Saludos y gracias :)

Por Imi

14 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Mar 2008 10:50 pm
Espero que esto sea lo que estas buscando.

Código :

import flash.display.BitmapData;
import flash.display.Bitmap;
import flash.display.Sprite;
import flash.geom.Rectangle;
import flash.geom.Point;

//Creando el bitmap
var rect:Rectangle = new Rectangle(0, 0, img.width, img.height);
var btmData:BitmapData = new BitmapData(rect.width, rect.height, true, 0x00000000);
btmData.draw(img);

//Convirtiendo en blanco y negro
btmData.copyChannel(btmData, rect, new Point(0, 0), 2, 1);
btmData.copyChannel(btmData, rect, new Point(0, 0), 2, 2);
btmData.copyChannel(btmData, rect, new Point(0, 0), 2, 4);

//Attacheando la imagen
var bmp:Bitmap = new Bitmap(btmData);
bmp.x = 282;
bmp.y = img.y;
addChild(bmp);

Un ejemplo y el Fla aqui

Saludos!!

Por Cep

BOFH

1509 de clabLevel

9 tutoriales

1 ejemplo

Genero:Masculino   REC Bastard Operators From Hell

Web Developer

firefox
Citar            
MensajeEscrito el 26 Mar 2008 08:24 am
Gracias, parece ser lo que estaba buscando.

Necesito eliminar la información relativa al color de un par de imágenes para después aplicarles el filtro diferencia.

Las soluciones que había encontrado hasta ahora lo único que hacían era aplicar la eliminación de color como un filtro, con lo que el bitmapdata seguía siendo una imagen en color y no conseguía lo que yo quería.

Esta tarde lo pruebo y ya te comentaré...

Muchísimas gracias por la respuesta :)

Por Imi

14 de clabLevel



 

firefox

 

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