D3DX11SaveTextureToFile

D3DX11SaveTextureToFile

我有ID3D11ShaderResourceView * textureResView,我想将该纹理保存到文件中。我想我应该先从中提取ID3D11Texture2D,所以我做了一个代码:

ID3D11Resource * res;
ID3D11Texture2D * tex;
textureResView->GetResource(&res);
res->QueryInterface(&tex);
HRESULT result = D3DX11SaveTextureToFile(
    g_pImmediateContext, tex, D3DX11_IFF_PNG, "name.png");

不幸的是,这返回E_FAIL。我做错了什么?

最佳答案

因为E_FAIL回来了,所以D3DX11SaveTextureToFile(...)函数出了点问题。
如果您使用Windows 8,请使用其他功能(http://msdn.microsoft.com/en-us/library/windows/desktop/ff476298%28v=vs.85%29.aspx)

但我成功尝试

HRESULT result = D3DX11SaveTextureToFile(g_pImmediateContext, tex, D3DX11_IFF_PNG, L"name.png");

LPCSTR是与字符串格式不同的格式,因此必须在字符串前面加上L。

希望能奏效

10-04 12:05