在Windows / D3D中检测.png alpha通道

时间:2011-02-01 20:39:37

标签: windows png direct3d alpha

我正在使用D3DXCreateTextureFromFile()从.png加载纹理。我的程序如何知道图像文件是否包含alpha通道?

2 个答案:

答案 0 :(得分:2)

通过简单地检查文件,这并不难。

PNG文件包含:

  • 文件标题
  • 一个或多个“块”

文件头总是8个字节,应该跳过。

每个块以4个字节开始,表示其长度,4个字节表示其类型。第一个块应始终为13个字节,并且类型为IHDR。其中包含有关图像的信息。

标题中的第十个字节包含您正在寻找的确切信息。如果PNG文件是RGBA,它将等于6

可以找到更多信息here

答案 1 :(得分:1)

致电IDirect3DTexture9::GetSurfaceLevel,然后致电IDirect3DSurface9::GetDescD3DSURFACE_DESC.Format会员会告诉你。