Directx 按程序生成每个通道16位的PNG文件

Directx 按程序生成每个通道16位的PNG文件,directx,png,tiff,16-bit,Directx,Png,Tiff,16 Bit,是否有任何方法可以使用D3DX11SaveTextureToFile生成每通道16位(RGBA)PNG文件? 或任何版本的DirectX、任何图像库(C++)、任何图像格式 我尝试在这里使用示例代码: 并将函数名修改为D3D11版本 当我将desc.Format设置为DXGI_Format_R8G8B8A8_UNORM时,该程序运行良好 但是当我将desc.格式更改为DXGI_格式时,D3DX11SaveTextureToFile返回E_FAIL 我曾尝试使用DevIL(开发者的图像库),但它

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

我尝试在这里使用示例代码:

并将函数名修改为D3D11版本

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

但是当我将desc.格式更改为DXGI_格式时,D3DX11SaveTextureToFile返回E_FAIL


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

唯一可以保存所有纹理格式的格式是
D3DX11\u IFF\u DDS
。似乎
D3DX11SaveTextureToFile
无法保存16位PNG。一种可能是提取纹理的imagedata并使用此处讨论的一种可能(例如OpenCV或libpng)手动保存:。

感谢您的建议,我将尝试一下。为什么不直接使用libpng呢?