windows 使用 C++ 的硬件加速图像缩放

Hardware Accelerated Image Scaling in windows using C++

我必须缩放位图图像(例如 1280 x 720 到 1920 X 180,反之亦然)。

我在从屏幕捕获视频时使用了这种缩放比例。基于软件的缩放消耗大量 CPU 缩放并且速度也较慢。

是否有任何硬件加速 API 或库来执行缩放?

线程 How to use hardware video scalers? 中讨论了一些方法。但没有定论。

需要支持:Windows 7 岁以上

如果您有一张 IDirect3DTexture9 的图像要缩放,您可以使用 StretchRect

D3D11 中没有等效函数,但是,如果您有一个要缩放的图像 ID3D11Texture2D,您可以简单地创建一个具有所需目标大小的渲染目标、一个全屏四边形,然后渲染使用仅对原始纹理进行采样的简单着色器到目标。生成的渲染目标将是输入的缩放图像。注意:此全屏四边形方法也适用于 D3D9。