我想将透明度应用于非透明徽标,然后将其添加到图像中。 所以我改变了徽标的alpha,然后在图像上绘制()徽标。 但它不起作用,透明度未按预期应用。
注意:我稍后会将生成的bitmapData保存到文件中,因此addChild()将不足以解决此问题。
var image:Bitmap;
var logo:Bitmap;
//...
logo.alpha = 0.3;
image.bitmapData.draw(logo);
答案 0 :(得分:2)
试试这个:
var adjustAlpha:ColorTransform = new ColorTransform();
adjustAlpha.alphaMultiplier = 0.3
var logoArea:Rectangle = new Rectangle(0, 0, logo.width, logo.height);
logo.bitmapData.colorTransform(logoArea, adjustAlpha);
image.bitmapData.draw(logo);
当您修改位图的alpha值时,您不会修改它的实际位图数据,因此在绘制它时,您仍在复制bitmapData中找到的未修改数据。
上面的代码使用colorTransform属性来调整bitmapData中的每个像素,您可以通过更改矩形的大小来定位特定区域。
(您还需要导入ColorTransform
课程。)