もちろん、結果の画像は長方形でなければなりませんが、 and を使用して透明度でマスクできBitmapData.draw
ますBlendMode
。
var originalImage:BitmapData; // defined
var maskPath:GraphicsPath; // defined
var maskShape:Shape = new Shape();
maskShape.graphics.beginFill(0, 0); // fill region with transparent
maskShape.graphics.drawRect(0, 0, originalImage.width, originalImage.height);
maskShape.graphics.endFill();
maskShape.graphics.beginFill(0xFF0000);
maskShape.graphics.drawPath(maskPath.commands, maskPath.data, maskPath.winding);
maskShape.graphics.endFill();
var resultImage:BitmapData = originalImage.clone();
resultImage.draw(maskShape, null, null, BlendMode.ALPHA);
トリミングの場合は、おそらく最後の数行でもっと手の込んだことを行うでしょう。全体を複製する代わりに領域をコピーしoriginalImage
たり、maskShape
.
DisplayObject
(s を使用するには aを使用する必要があると思いますBlendMode
が、ドキュメントでは明確ではありません。)