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 に答える