Bac*_*alo 3 flash bitmap actionscript-3 bitmapdata
我有一个涉及加载透明png的问题.我想要做的是从加载的png复制alpha通道,然后将此alpha通道应用于另一个Bitmapdata对象.
谁能建议我怎么做?
事实证明,我有一个类正是这样做的:
package
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.BitmapDataChannel;
import flash.geom.Point;
import flash.geom.Rectangle;
public class BitmapAlphaMerge
{
public static function merge (imgBitmap:Bitmap, maskBitmap:Bitmap) : Bitmap
{
var img:BitmapData = imgBitmap.bitmapData;
var mask:BitmapData = maskBitmap.bitmapData;
var mergeBmp:BitmapData = new BitmapData(img.width, img.height, true, 0);
var rect:Rectangle = new Rectangle(0, 0, img.width, img.height);
mergeBmp.copyPixels(img, rect, new Point());
mergeBmp.copyChannel(mask, new Rectangle(0, 0, img.width, img.height), new Point(), BitmapDataChannel.ALPHA, BitmapDataChannel.ALPHA);
return new Bitmap(mergeBmp);
}
}
}
Run Code Online (Sandbox Code Playgroud)
第一个参数imgBitmap是您要添加Alpha通道的图像.maskBitmap是您正在复制频道的位图.您可以修改它以非常容易地使用纯BitmapData对象.