我可以使用D3DXCreateTextureFromFile
加载图片,D3DXSaveTextureToFile
可以保存图像,但是如何调整图片呢?我应该使用IDirect3DDevice9::SetRenderTarget
并渲染纹理吗?
它比在CPU上做的慢吗?
答案 0 :(得分:1)
通常你会调整大小'使用GPU将图像绘制为全屏四边形图像。到设置为目标大小的渲染目标上。根据所涉及的大小和数据,将它通过GPU发送然后依靠回读将其发送到磁盘可能会更慢,因此在CPU上执行此操作通常是更好的方法。我相信您使用的旧版已弃用D3DX9
实用程序库可以使用D3DXLoadSurfaceFromSurface
进行调整大小。
您不应该将Direct3D 9和/或旧
D3DX9
库用于新项目。请参阅MSDN和Living without D3DX
更好的解决方案是直接使用Windows Imaging Component加载图像,调整图像大小并保存缩略图。有关使用WIC的大量示例代码,请参阅DirectXTex。