【发布时间】:2011-02-01 20:39:37
【问题描述】:
我正在使用 D3DXCreateTextureFromFile() 从 .png 加载纹理。我的程序如何知道图像文件是否包含 alpha 通道?
【问题讨论】:
标签: windows png direct3d alpha
我正在使用 D3DXCreateTextureFromFile() 从 .png 加载纹理。我的程序如何知道图像文件是否包含 alpha 通道?
【问题讨论】:
标签: windows png direct3d alpha
通过简单地检查文件来做到这一点并不难。
一个PNG文件包括:
文件头总是8字节,应该跳过。
每个块以 4 个字节表示其长度,4 个字节表示其类型。第一个块应始终为 13 个字节,类型为 IHDR。这包含有关图像的信息。
标题中的第十个字节包含您要查找的确切信息。如果 PNG 文件是 RGBA,它将等于 6。
更多信息可以在here找到。
【讨论】:
致电IDirect3DTexture9::GetSurfaceLevel,然后致电IDirect3DSurface9::GetDesc。 D3DSURFACE_DESC.Format 会员会告诉你。
【讨论】: