2013-05-15 26 views
0

是否有任何方式來產生每個通道的16位使用D3DX11SaveTextureToFile(RGBA)PNG文件? 或DirectX的任何版本,任何圖像庫(C++),任何圖像格式生成每通道16位PNG文件程序上

我試圖用此示例代碼: 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。

我試圖用惡魔(開發者的圖像庫),但它不支持每個通道png文件16位。

+0

爲什麼不直接使用libpng? – Fabel

回答

0

可以保存所有紋理格式的唯一格式是D3DX11_IFF_DDS。看來D3DX11SaveTextureToFile不能保存16Bit PNG。一種可能性是提取紋理的圖像數據並手動保存,其中有一種可能性(例如OpenCV或libpng)在這裏討論:Writing 16 bit uncompressed image using OpenCV

+0

感謝您的建議,我會嘗試一下。 – Vivacissimo