2

このチュートリアルに従って、フレックスで画像をトリミングしています: http://code.mediablur.com/ImageCropper/ImageCropperDemo.html

そのクロッピングの中心にあるのは、「copyPixels」と呼ばれるメソッドを使用することです。ただし、このメソッドは引数の 1 つとしてトリミング領域の長方形を受け取ります。長方形を使用せずにトリミングするために使用できる他の戦略はありますか。

一連のポイントを使用してトリミングする必要がある領域をユーザーに指定させた後です。

4

1 に答える 1

0

もちろん、結果の画像は長方形でなければなりませんが、 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が、ドキュメントでは明確ではありません。)

于 2009-10-30T16:55:23.540 に答える