2009-10-30 102 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,但是这不是在文件中明确)。