2009-10-30 111 views

回答

0

產生的圖像必須是一個矩形,當然,但你可以使用BitmapData.drawBlendMode透明度面膜:

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使用BlendMode S,但是這不是在文件中明確)。