
Etiquetas: BitmapData clone threshold
La función threshold permite hacer comparaciones pixel a pixel en una imagen. Por ejemplo, podemos separar todos los pixels mayores de un color de una imagen, y obtener otra imagen con esos pixels. La función threshold tiene 5 parámetros obligatorios (y varios opcionales):
threshold(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, operation:String, threshold:uint)
-sourceBitmapData: la imagen que vamos a utilizar
-sourceRect: rectángulo que define el area de la imagen de origen que vamos a utilizar
-destPoint: punto de la imagen de destino que corresponde a la esquina superior izquierda del rectángulo
-operation: operación que vamos a utilizar
-threshold: valor con el que comparamos cada pixel
Por ejemplo, si queremos separar los pixels mayores de 0xFFCCCCCC de los menores en una imagen, podemos utilizar:
img1.threshold(img1, new Rectangle(0, 0, 350, 242), new Point(0, 0), ">", 0xFFCCCCCC);
img2.threshold(img2, new Rectangle(0, 0, 350, 242), new Point(0, 0), "<=", 0xFFCCCCCC);
El código completo y los fuentes:
package
{import flash.display.BitmapData;
import flash.display.*;
import flash.events.Event;
import flash.filters.*;
import flash.geom.*;
import flash.media.*;
import flash.filters.ColorMatrixFilter;
public class EjemploTH extends Sprite
{var count:uint = 0;
var img:BitmapDatavar copy:BitmapData
public function EjemploTH()
{img = new Imagen(350, 242);
separar();
}private function separar():void
{var img1:BitmapData = img.clone();
var img2:BitmapData = img.clone();
img1.threshold(img1, new Rectangle(0, 0, 350, 242), new Point(0, 0), ">", 0xFFCCCCCC);
img2.threshold(img2, new Rectangle(0, 0, 350, 242), new Point(0, 0), "<=", 0xFFCCCCCC);
var bm1:Bitmap = new Bitmap(img1)
var bm2:Bitmap = new Bitmap(img2)
bm2.x = 350;
addChild(bm1);
addChild(bm2);
} }}