8.8.拷贝象素

问题
我要拷贝BitmapData中的象素
解决办法
使用BitmapData的copyPixels( )方法
讨论
copyPixels( )方法的实现也很简单,只要得到象素值然后画到其他地方,非常类似于draw( )方法。

但是copyPixels( )可控制拷贝象素的数量和目标。只要指定一个矩形区域和目标点即可:
+展开
-ActionScript
bitmap.copyPixels(sourceBmp, srcRect, destPoint);

srcRect是flash.geom.Rectangle类实例,destPoint是flash.geom.Point类实例,它指定拷贝到目标位图的具体x,y坐标位置。

下面的例子演示如何从载入的位图中拷贝多个矩形区域到另一个BitmapData上:
+展开
-ActionScript
package {
import flash.display.Sprite;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.geom.Point;
import flash.geom.Rectangle;
public class AS3CB extends Sprite {
private var _bitmap:BitmapData;
private var _loader:Loader;
public function AS3CB( ) {
_loader = new Loader( );
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoad);
_loader.load(new URLRequest("myphoto.jpg"));
_bitmap = new BitmapData(stage.stageWidth,
stage.stageHeight,
false, 0xffffffff);
var image:Bitmap = new Bitmap(_bitmap);
addChild(image);
}
public function onLoad(event:Event):void {
var loaderBmp:Bitmap = Bitmap(_loader.content);
var w:Number = loaderBmp.width / 10;
for(var i:int = 0; i < 10; i++) {
_bitmap.copyPixels(loaderBmp.bitmapData,
new Rectangle(i * w, 0,
w, loaderBmp.height),
new Point(i * (w + 2), i));
}
}
}
}

加支付宝好友偷能量挖...


评论(0)网络
阅读(101)喜欢(0)flash/flex/fcs/AIR