bitmap copyPixels和threshold的用法

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init2()">
	
	<mx:Script>
		<![CDATA[
			import mx.core.FlexBitmap;
			import mx.core.UIComponent;
			import mx.controls.Alert;
			private function init(){
				Alert.show("hello")
				var bmap:BitmapData=new BitmapData(200,300,false,0x8458455);
				
				var bm:FlexBitmap=new FlexBitmap(bmap);
				
				var ui:UIComponent=new UIComponent;
				ui.addChild(bm)
//				
				this.addChild(ui);
				
				
				var bmap2:BitmapData=new BitmapData(200,300,false,0x5444444);
				var bm2:Bitmap=new Bitmap(bmap2);
				
				var ui2:UIComponent=new UIComponent;
				ui2.addChild(bm2);
				bm2.x=250;
				this.addChild(ui2);
				
				bmap.fillRect(new Rectangle(0,0,30,30),0x1562122);//填充指定rect的颜色
				
				var rect:Rectangle=new Rectangle(20,20,50,50);//从原bmap的 x=20,y=20,width=50,width=50拷贝像素 
				var point:Point=new Point(0,20);//拷贝到目标点 bmap2的位置
				
				bmap2.copyPixels(bmap,rect,point);
				
				}
				private function init2(){
					var bit:Bitmap=new Bitmap;
					var bitdata:BitmapData=new BitmapData(200,300,false,0x77777777);
					bit.bitmapData=bitdata;
					
					
					
					var bit2:Bitmap=new Bitmap;
					var bitdata2:BitmapData=new BitmapData(200,300,false,0x00800000);
					bit2.bitmapData=bitdata2;
					
					Alert.show(bitdata.getPixel(10,10)+"");
					bit2.x=250;
					
					var ui1:UIComponent=new UIComponent;
					ui1.addChild(bit);
					var ui2:UIComponent=new UIComponent;
					ui2.addChild(bit2);
					
					this.addChild(ui1);
					this.addChild(ui2);
					var rect:Rectangle=new Rectangle(0,0,30,30);//原对象的范围
					var point:Point=new Point(0,0);
					var threColor:uint=0x7829366;
					var color:uint=0x999999;
					var mask:uint=0x000000;
					
					Alert.show(((0x77777777&mask)==(mask&threColor))+"");
					
					//如果校验成功((0x77777777&mask)==(mask&threColor) 会把bitdata中指定的 rect区域复制到 bitdata2中
					//复制的颜色值是指定的 color
					//如果校验失败((0x77777777&mask)!=(mask&threColor)并且最后一个值copysource=true;
					 //那么会把bitdata2中指定rect区域的 bitdata的颜色值0x77777777,复制到bitdata2中
					
					bitdata2.threshold(bitdata,rect,point,"==",threColor,color,mask,false);
					
					
					
				}
			
		]]>
	</mx:Script>
</mx:Application>

 

你可能感兴趣的:(xml,UI,Adobe)