0

无论如何在使用位图数据绘制时应用 alpha 和 BlendMode.HardLight 吗?

var processImageBmd:BitmapData=new BitmapData(900,900);
processImageBmd.draw(backgroundImage);  //backgroundImage is a sprite                               

processImageBmd.draw(frontImage,null,null,BlendMode.HARDLIGHT);//frontImage is a sprite

基本上我需要将 alpha(假设 alpha = 0.4)和 BlendMode.HardLight 应用于 frontImage。我成功地将混合模式硬光应用于正面图像,但无法弄清楚如何使其成为 alpha。

4

2 回答 2

2

您应该能够colorTransfrom通过传递给绘图函数来做到这一点。

因此,对于您的情况,这应该可以解决问题:

var ct:ColorTransform = frontImage.transform.colorTransform; //copy the current colorTransform so you don't have to mess with colors
ct.alphaMultiplier = .4; //set it's alpha to .4;
processImageBmd.draw(frontImage,null,ct,BlendMode.HARDLIGHT); //pass your color transform to the draw command
于 2012-11-08T21:29:39.990 回答
1

是的,这是可能的。您必须传递 a ColorTransform,其中包含一个 alphaMultiplier 参数。

BitmapData.draw(IDrawable, Matrix, ColorTransform, BlendMode, ClipRect, smoothing)
于 2012-11-08T21:26:43.500 回答