如何复制遮罩位图以保持动作脚本中的遮罩透明度?

发布于 2024-08-16 16:56:51 字数 169 浏览 8 评论 0原文

我需要找到一种方法来复制蒙版位图。我在舞台上有一个位图,以及一个用户绘制的精灵作为遮罩。我需要捕获/复制遮罩区域位图,保持遮罩创建的透明度,最终编码为 png。

我找不到有关如何使用 copyPixels() 或任何其他说明来完成此操作的文档。

预先感谢您的任何帮助 -

b

I need to find a way to copy a masked bitmap. I have a bitmap on stage, and a user drawn sprite that acts as a mask. I need to capture/copy the masked area bitmap, maintaining the transparency created by the masking to eventually encode as a png.

I could find no documentation on how to accomplish this using copyPixels(), or any other directions.

Thanks in advance for any assistance -

b

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

天气好吗我好吗 2024-08-23 16:56:51

我做了一个似乎有效的简单测试:

var square:Sprite = new Sprite();
var circle:Sprite = new Sprite();
var holder:Sprite = new Sprite();

square.graphics.beginFill(0,.5);
square.graphics.drawRect(0,0,100,100);
square.graphics.endFill();

circle.graphics.beginFill(0);
circle.graphics.drawCircle(0,0,50);
circle.graphics.endFill();

addChild(holder);
holder.addChild(square);
holder.addChild(circle);
square.mask = circle;

var cloneData:BitmapData = new BitmapData(holder.width,holder.height,true,0x00FFFFFF);
cloneData.draw(holder);
var clone:Bitmap = new Bitmap(cloneData);
addChild(clone);
clone.x = 30;

我正在创建一个 BitmapData 并使用 draw() 方法来进行克隆。
关键似乎是 BitmapData 构造函数中的最后两个参数。
在传递holder.width和holder.height后,我指定我希望bitmapData透明(true)并填充全透明白色(0x00FFFFFF) ARGB(alpha-红-绿-蓝)

希望这有帮助:)

I've made a simple test that seems to work:

var square:Sprite = new Sprite();
var circle:Sprite = new Sprite();
var holder:Sprite = new Sprite();

square.graphics.beginFill(0,.5);
square.graphics.drawRect(0,0,100,100);
square.graphics.endFill();

circle.graphics.beginFill(0);
circle.graphics.drawCircle(0,0,50);
circle.graphics.endFill();

addChild(holder);
holder.addChild(square);
holder.addChild(circle);
square.mask = circle;

var cloneData:BitmapData = new BitmapData(holder.width,holder.height,true,0x00FFFFFF);
cloneData.draw(holder);
var clone:Bitmap = new Bitmap(cloneData);
addChild(clone);
clone.x = 30;

I'm creating a BitmapData and using the draw() method to make a clone.
The key thing seems to be the last two arguments in the BitmapData constructor.
After I pass the holder.width and holder.height, I specify I want the bitmapData to be transparent (true) and have the fill full transparent white (0x00FFFFFF) in ARGB (alpha-red-green-blue)

Hope this helps :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文