gpt4 book ai didi

c# - 如何检查 Texture2D 是否透明?

转载 作者:太空宇宙 更新时间:2023-11-03 11:29:18 25 4
gpt4 key购买 nike

我想检查选中的矩形是否透明:

spriteBatch.Draw(texture, new Vector2(0, 0), 
new Rectangle(0, 0, 16, 16), Color.White);

这可能吗?

最佳答案

是的,这是可能的。您必须检查该区域中的所有像素是否透明。请注意,这是一个相当慢的操作。

这是一个应该做你想做的方法:

bool IsRegionTransparent(Texture2D texture, Rectangle r)
{
int size = r.Width * r.Height;
Color[] buffer = new Color[size];
texture.GetData(0, r, buffer, 0, size);
return buffer.All(c => c == Color.Transparent);
}

请注意,我没有编译、测试或优化以上内容。此外,它是为预乘纹理设计的(XNA 4.0 中的默认设置)。

关于c# - 如何检查 Texture2D 是否透明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8372041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com