我可以使用Direct3D生成缩略图吗?

时间:2018-02-02 13:03:20

标签: directx direct3d directx-9 direct3d9

我可以使用D3DXCreateTextureFromFile加载图片,D3DXSaveTextureToFile可以保存图像,但是如何调整图片呢?我应该使用IDirect3DDevice9::SetRenderTarget并渲染纹理吗?

它比在CPU上做的慢吗?

1 个答案:

答案 0 :(得分:1)

通常你会调整大小'使用GPU将图像绘制为全屏四边形图像。到设置为目标大小的渲染目标上。根据所涉及的大小和数据,将它通过GPU发送然后依靠回读将其发送到磁盘可能会更慢,因此在CPU上执行此操作通常是更好的方法。我相信您使用的旧版已弃用D3DX9实用程序库可以使用D3DXLoadSurfaceFromSurface进行调整大小。

  

您不应该将Direct3D 9和/或旧D3DX9库用于新项目。请参阅MSDNLiving without D3DX

更好的解决方案是直接使用Windows Imaging Component加载图像,调整图像大小并保存缩略图。有关使用WIC的大量示例代码,请参阅DirectXTex