0

我有一个 BitmapImage 并对其应用了 ShaderFilter:

            var bm:BitmapImage = new BitmapImage();
            bm.source = resizedBitmapData;
            bm.filters = [filter];

我尝试将 bitmapImage 复制到更大的图像中作为叠加层:

            bm.addEventListener(FlexEvent.READY, function (event:*):void {
                var bmd:BitmapData = bm.bitmapData;
                backgroundBitmap.bitmapData.copyPixels(bmd, 
                    new Rectangle(0, 0, bmd.width, bmd.height),
                    location);          
            });

它有效,但“bmd”包含的是应用过滤器之前的原始图像。我想要的是在应用过滤器后获取生成的图像。这可能吗?

我正在尝试 ImageSnapshot.captureBitmapData() 但 BitmapImage 似乎不是 IBitmapDrawable。

4

1 回答 1

1

我会尝试将它添加到精灵中,然后如果您的方式不起作用,则渲染精灵......

就像是

 var helper:Sprite = new Sprite();
 helper.addChild(bm);
 var bmd:BitmapData = new BitmapData(bm.width,bm.height);
 bmd.draw(helper);
 backgroundBitmap.bitmapData.copyPixels(helper, 
       new Rectangle(0, 0, helper.width, helper.height),location);  

你有没有检查过过滤器是否适用并且正在渲染想要的结果?;)

于 2012-09-22T20:07:07.710 回答