我正在使用 D3DXCreateTextureFromFile() 从 .png 加载纹理。我的程序如何知道图像文件是否包含 alpha channel ?
最佳答案
只需检查文件即可做到这一点。
一个 PNG 文件包括:
- 一个文件头
- 一个或多个“ block ”
文件头总是 8 个字节,应该跳过。
每个 block 以 4 个字节开始,指示其长度,4 个字节指示其类型。第一个 block 应始终为 13 个字节,类型为 IHDR
。这包含有关图像的信息。
header 中的第十个字节包含您要查找的确切信息。如果 PNG 文件是 RGBA,它将等于 6
。
可以找到更多信息here .
关于windows - 在 Windows/D3D 中检测 .png alpha channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4867715/