【问题标题】:AS3-Copy the transparency from 1 BitmapData object(loaded PNG) and apply to another?AS3-从 1 BitmapData 对象(加载的 PNG)复制透明度并应用于另一个?
【发布时间】:2011-12-10 05:10:57
【问题描述】:

我在加载透明 png 时遇到问题。 我想要做的是从加载的 png 复制 alpha 通道,然后将此 alpha 通道应用到另一个 Bitmapdata 对象。

谁能建议我如何做到这一点?

【问题讨论】:

  • 如果这对您有用,请接受答案。

标签: flash actionscript-3 bitmap bitmapdata


【解决方案1】:

事实证明,我有一个完全可以做到这一点的课程:

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);
        }
    }
}

第一个参数imgBitmap 是要添加 Alpha 通道的图像。 maskBitmap 是您从中复制频道的位图。您可以很容易地修改它以使用纯 BitmapData 对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-23
    • 1970-01-01
    • 2011-10-14
    相关资源
    最近更新 更多