Detecting Areas by Color : BitmapData « Graphics « Flash / Flex / ActionScript






Detecting Areas by Color

 
package {

    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.display.Shape;
    import flash.display.Sprite;
    import flash.display.Loader;
    import flash.net.URLRequest;
    import flash.events.MouseEvent;
    import flash.events.Event;
    import flash.geom.Point;
    import flash.geom.Rectangle;

    public class Main extends Sprite {

        private var _bitmapData:BitmapData;
        private var _loader:Loader = new Loader();
        private var _outline:Shape;

        public function Main () {
            _loader.load(new URLRequest("http://www.java2s.com/samplefiles/image2.jpg"));
            _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);

            addEventListener(MouseEvent.CLICK, clickHandler);

        }

        private function completeHandler(event:Event):void {

            var w:Number = _loader.width;
            var h:Number = _loader.height;

            _bitmapData = new BitmapData(w, h);
            _bitmapData.draw(_loader);

            var bitmap:Bitmap = new Bitmap(_bitmapData);
            var container:Sprite = new Sprite();
            addChild(container);
            container.addChild(bitmap);

            _outline = new Shape();
            addChild(_outline);

        }

        private function clickHandler(event:MouseEvent):void {

            var color:uint = _bitmapData.getPixel32(mouseX, mouseY);
            var rectangle:Rectangle =  _bitmapData.getColorBoundsRect(0xFFFFFFFF, color);
            _outline.graphics.clear();
            _outline.graphics.lineStyle(0, 0x000000, 1);
            _outline.graphics.drawRect(rectangle.x, rectangle.y, rectangle.width, rectangle.height);
        }
    }
}

        








Related examples in the same category

1.Creating a BitmapData Object
2.Displaying BitmapData Images
3.Creating a New Bitmap Image from ImageData
4.Creating a Flood Fill
5.Create animation by setting the bitmap pixel
6.Dissolve
7.File BitmapData with Rectangle
8.Get pixel data from BitmapData
9.The alpha value of pixels can be set in transparent bitmaps only (i.e., bitmaps created with the value true passed to the transparent parameter of the BitmapData constructor)
10.getPixel32() Versus getPixel( )
11.Retrieve a pixel with Alpha set to 255, from a transparent image
12.Retrieving the Color of a Region of Pixels
13.Modifying a BitmapData
14.Assign a pixel value using a number that specifies an Alpha channel of CC
15.Using BitmapData.lock( ) to improve performance
16.Assigning the Color of a Region of Pixels
17.How draw( ) handles Alpha channel values
18.Applying Color Transformations
19.Adding Noise
20.Adding Perlin Noise
21.Updates the octaves parameter
22.The randomSeed parameter is responsible for the randomness of the noise
23.The following code makes a BitmapData object with Perlin noise, and then uses that object as a bitmap fill. Because the stitch parameter is false, the edges are visible as it tiles.
24.PerlinNoise animation