我正在使用D3DXCreateTextureFromFile()从.png加载纹理。我的程序如何知道图像文件是否包含alpha通道?
答案 0 :(得分:2)
通过简单地检查文件,这并不难。
PNG文件包含:
文件头总是8个字节,应该跳过。
每个块以4个字节开始,表示其长度,4个字节表示其类型。第一个块应始终为13个字节,并且类型为IHDR
。其中包含有关图像的信息。
标题中的第十个字节包含您正在寻找的确切信息。如果PNG文件是RGBA,它将等于6
。
可以找到更多信息here。
答案 1 :(得分:1)
致电IDirect3DTexture9::GetSurfaceLevel
,然后致电IDirect3DSurface9::GetDesc
。 D3DSURFACE_DESC.Format会员会告诉你。