【问题标题】:Can I use Direct3D to generate thumbnails?我可以使用 Direct3D 生成缩略图吗?
【发布时间】:2018-02-02 13:03:19
【问题描述】:

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

比在 CPU 上做的慢吗?

【问题讨论】:

    标签: directx direct3d directx-9 direct3d9


    【解决方案1】:

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

    您不应将 Direct3D 9 和/或旧版 D3DX9 库用于新项目。见MSDNLiving without D3DX

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

    【讨论】:

    • “Windows 映像组件”最早出现在哪个版本的 Windows 中?我的电脑很旧了。
    猜你喜欢
    • 2011-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-18
    • 2013-03-11
    • 1970-01-01
    • 2018-03-30
    • 2018-07-19
    相关资源
    最近更新 更多