Comparar pixels de imágenes en Actionscript 3.0 con threshold |
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:
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:BitmapData var 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); } } }

|
|