图片取色器:

 

/**
 *
 * *---------------------*
 * |  *** 图片取色器 ***  |
 * *---------------------*
 *
 * 编辑修改收录:fengzi(疯子、wu341、wgq341)
 *
 * 不会写代码,我是代码搬运工。
 *
 * 联系方式:QQ(493712833)。
 *
 * 随   笔: https://www.cnblogs.com/fengziwu/
 *
 * 版权协议:请自觉遵守LGPL协议,欢迎修改、复制、转载、传播给更多需要的人。
 * 免责声明:任何因使用此软件导致的纠纷与软件/程序开发者无关。
 * 日   期: 2019.05.08
 *
 * ---------------------- 实例 --------------------------- *
 *图片取色器
  import fengzi.colors.ExtractColor;
  var s:ColorPicker=new ExtractColor(图片);
  addChild(s);
  s.addEventListener("color.move",colorMoveHandler);
  function colorMoveHandler(event:Event):void
  {
	trace(event.target.color)
  }
 */

package fengzi.colors
{
	import flash.display.Sprite;
	import flash.display.MovieClip;
	import flash.events.Event;
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.display.PixelSnapping;
	import flash.events.MouseEvent;
	public class ExtractColor extends Sprite
	{
		static public const COLOR_MOVE:String = "color.move";
		private var bitmap:Bitmap;
		private var bitmapData:BitmapData;
		private var imgMc:*;
		private var _color:uint = 0;
		private var colorStr:String
		
		/***
		* ExtractColor      图片取色器
		* @param            imgMc          图片对象
		***/
		public function ExtractColor(imgMc: * )
		{
			getColor(imgMc);
		}

		private function getColor(mc:*)
		{
			bitmapData = new BitmapData(mc.width,mc.height,false,0xFFFFFF);
			bitmapData.draw(mc);
			bitmap = addChild(new Bitmap(bitmapData,PixelSnapping.AUTO,false)) as Bitmap;
			this.addEventListener(MouseEvent.MOUSE_MOVE,moveHandler);

		}

		private function moveHandler(event:MouseEvent):void
		{
			_color = bitmapData.getPixel(mouseX,mouseY);

			var temp_color:String = _color.toString(16);
			var temp_length:int = temp_color.length;
			if (temp_length < 6)
			{
				switch (temp_length)
				{
					case 4 :
						colorStr = "0x00" + _color.toString(16);
						break;
					case 5 :
						colorStr = "0x0" + _color.toString(16);
						break;
					default :
						trace("no case tested true");
				}
			}
			else
			{
				colorStr = (("0x" + _color.toString(16)) + "00000").slice(0,8);
				
			}
			trace(colorStr);
			dispatchEvent(new Event(COLOR_MOVE));
		}
        
		/***
		* color  返回一个16进制颜色值(0xff00ff)
		***/
		public function get color():String
		{
			return colorStr;
		}



	}

}

  

posted on 2019-05-22 22:28  疯子_wu  阅读(430)  评论(0编辑  收藏  举报