天天看点

Finding a pixel’s color value using the Bitmap classes and getPixel()

This example loads an image and then uses a combination of the Bitmap and BitmapData classes to determine the color value under the mouse cursor. Pretty basic, but kind of neat. Maybe? Sorta?

<a></a>

&lt;?xml version="1.0" encoding="utf-8"?&gt;

&lt;!-- http://blog.flexexamples.com/2007/08/02/finding-a-pixels-color-value-using-the-bitmap-classes-and-getpixel/ --&gt;

&lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"

        layout="vertical"

        verticalAlign="middle"

        backgroundColor="white"&gt;

    &lt;mx:Script&gt;

        &lt;![CDATA[

            private var bm:Bitmap;

            private var bmd:BitmapData;

            private function image_complete(evt:Event):void {

                /* Create Bitmap from Image content. */

                bm = img.content as Bitmap;

                /* Create new BitmapData object. */

                bmd = new BitmapData(img.contentWidth, img.contentHeight);

                /* Draw Bitmap into BitmapData. */

                bmd.draw(bm.bitmapData);

            }

            private function image_mouseMove(evt:MouseEvent):void {

                /* Get the pixel currently under the mouse cursor. */

                var color:int = bmd.getPixel(evt.localX, evt.localY);

                /* Convert the color value from a number to Hex string. */

                var colorStr:String = color.toString(16).toUpperCase();

                /* Set the swatch Box instance's backgroundColor style to the color under the mouse cursor. */

                swatch.setStyle("backgroundColor", color);

                /* Make sure colorStr is at least 6 characters. */

                colorStr = "000000" + colorStr;

                /* Make sure colorStr is at MOST 6 characters. */

                lbl.text = "#" + colorStr.substr(colorStr.length - 6);

        ]]&gt;

    &lt;/mx:Script&gt;

    &lt;mx:Zoom id="zoom" /&gt;

    &lt;mx:VBox&gt;

        &lt;mx:Image id="img" source="image1.jpg" completeEffect="{zoom}" complete="image_complete(event);" mouseMove="image_mouseMove(event)" /&gt;

        &lt;mx:HBox&gt;

            &lt;mx:Box id="swatch" width="{lbl.height}" height="{lbl.height}" /&gt;

            &lt;mx:Label id="lbl" width="100" fontFamily="_typewriter" fontSize="16" /&gt;

        &lt;/mx:HBox&gt;

    &lt;/mx:VBox&gt;

&lt;/mx:Application&gt;

继续阅读