09 de Septiembre de 2010

Notas Espacio Programación

galería de imágenesvideo
AUTOR: Andrés Fernández
FECHA: 17/1/2009
LECTURAS:2146
Buscar Notas
volver
Efecto Espejo y Escala de Grises

Efectos interesantes con BitmapData

Dos ejemplos que demuestran la potencia de la Clase BitmapData
A continuación vamos a presentar 2 funciones basadas en la clase BitmapData: una que servirá para conseguir un efecto espejo, y otra que nos permitirá pasar una imagen a escala de grises. Para entender bien su funcionamiento, te recomendamos que leas el siguiente artículo: Introducing the Image API in Flash 8, escrito por Guy Watson.

Efecto Espejo:

Resultado:


Código utilizado:
import flash.geom.*;
import flash.display.*;
function 
espejo(mc){
   
w=mc._widthh=mc._height;
   
= new BitmapData(w2*htrue0);
   
createEmptyMovieClip("p2",100002);
   
= new Matrix(); M.scale(1,-1); M.ty 2*h;
   
Mx = new Matrix(); Mx.createGradientBox(w,h,1.57,0,0);
   
t.beginGradientFill("linear",[0,0,0],[100,80,10],[100,160,255],Mx); 
   
t.moveTo(0,0);t.lineTo(0,h);t.lineTo(w,h);t.lineTo(w,0);t.endFill();
   
b.draw(mc,M); b.draw(t,M,null,12); 
   
t.removeMovieClip();
   
mc.attachBitmap(b,2);
}
this.createEmptyMovieClip("holder_mc",this.getNextHighestDepth());
var 
loader = new MovieClipLoader();
loader.addListener(this);
loader.loadClip("http://www.disegnocentell.com.ar/ejemplos/img/1.jpg",holder_mc);
function 
onLoadInit(tm){
    
espejo(tm);
}



Pasar imagen a escala de grises:

Resultado:


Código utilizado:
import flash.display.BitmapData;
import flash.geom.Matrix;
import flash.geom.Rectangle;
import flash.geom.Point;
function 
BMP2GrayScale(holder_mc){
    
myBitmap = new BitmapData(holder_mc._widthholder_mc._height,true,0x00FFFFFF);
    
= new Matrix();
    
m.scale(1,1);
    
m.translate(0,0);
    
myBitmap.draw(holder_mc,m);
    
attachBitmap(myBitmap,1);
    var 
rect:Rectangle = new Rectangle(00myBitmap.widthmyBitmap.height);
    var 
bmpTem=new BitmapData(myBitmap.widthmyBitmap.height,true,0x00FFFFFF);
    
bmpTem.copyPixels(myBitmap,new Rectangle(00myBitmap.widthmyBitmap.height),new Point(0,0));
    
bmpTem.copyChannel(bmpTemrect, new Point(00), 21);
    
bmpTem.copyChannel(bmpTemrect, new Point(00), 22);
    
bmpTem.copyChannel(bmpTemrect, new Point(00), 24);
    
myBitmap.copyPixels(bmpTem,new Rectangle(00myBitmap.widthmyBitmap.height),new Point(0,0));
    
bmpTem.dispose();    
}
this.createEmptyMovieClip("holder_mc",this.getNextHighestDepth());
var 
loader = new MovieClipLoader();
loader.addListener(this);
loader.loadClip("http://www.disegnocentell.com.ar/ejemplos/img/1.jpg",holder_mc);
function 
onLoadInit(tm){
    
BMP2GrayScale(tm);
}



(Podés descargar los archivos de estos ejemplos utilizando el menú de descargas ubicado en el lateral izquierdo de esta misma página.)
Home - Quiénes Somos - Portfolio - Espacio Diseño - Espacio Programación - Capacitación - Contacto - RSS - XHTML 1.0