0

有没有办法使用 D3DX11SaveTextureToFile 生成每通道 16 位(RGBA)PNG 文件?或任何版本的 DirectX、任何图像库 (C++)、任何图像格式

我尝试在这里使用示例代码:http: //msdn.microsoft.com/en-us/library/windows/desktop/bb205131 (v=vs.85).aspx

并将函数名称修改为 D3D11 版本。

当我将 desc.Format 设置为 DXGI_FORMAT_R8G8B8A8_UNORM 时,该程序运行良好。

但是当我将 desc.Format 更改为 DXGI_FORMAT_R16G16B16A16_UNORM 时, D3DX11SaveTextureToFile 返回 E_FAIL 。

我尝试使用 DevIL(开发人员的图像库),但它不支持每通道 16 位的 png 文件。

4

1 回答 1

0

唯一可以保存所有纹理格式的格式是D3DX11_IFF_DDS. 似乎D3DX11SaveTextureToFile无法保存 16Bit png。一种可能性是提取纹理的图像数据并使用此处讨论的一种可能性(例如 OpenCV 或 libpng)手动保存: 使用 OpenCV 编写 16 位未压缩图像

于 2013-05-15T08:40:45.297 回答