如何检查Texture2D是否透明?
我想检查所选矩形是否透明:
spriteBatch.Draw(texture, new Vector2(0, 0),
new Rectangle(0, 0, 16, 16), Color.White);
可以吗?
I want to check if the selected rectangle is transparent:
spriteBatch.Draw(texture, new Vector2(0, 0),
new Rectangle(0, 0, 16, 16), Color.White);
Is it possible?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的,这是可能的。您必须检查该区域中的所有像素都是透明的。请注意,这是一个相当慢的操作。
这是一个应该可以完成您想要的操作的方法:
请注意,我尚未编译、测试或优化上述内容。此外,它还专为预乘纹理而设计(XNA 4.0 中的默认设置)。
Yes, it is possible. You have to check all the pixels in the region are transparent. Note that this is a fairly slow operation.
Here is a method that should do what you want:
Note that I haven't compiled, tested or optimised the above. Also, it's designed for premultiplied textures (the default in XNA 4.0).