windows - 在 Windows/D3D 中检测 .png alpha channel

标签 windows png direct3d alpha

我正在使用 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/

相关文章:

directx - 从 DllMain 调用 IDirect3D9::CreateDevice() 挂起

c++ - 有没有一种标准的方法来捕获在 linux 和 windows 的 c++ 应用程序中工作的键盘输入?

c++ - 从另一个 HBITMAP 复制位图

c++ - 如何加载和显示动画 png

wpf - 如何设置透明 PNG (WPF) 的背景颜色?

c++ - DirectX 8.1 中来自表面的纹理

directx - D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT 可以与 D3D_FEATURE_LEVEL_11_0 一起传递吗?

Windows SDK环境和powershell

c - 在 Windows 中跨重启访问相同的资源

flutter - 如何在Flutter中将PNG转换为PDF?