5

出于性能原因,我正在尝试将应用程序从 GDI+ 移动到 Direct2D。

以前,我在 HALFTONE 模式下使用 StretchBlt(),效果很好,但效果很慢。

现在我使用 RenderTarget->DrawBitmap() 在 Direct2D 中绘图,但它只有两种模式,LINEAR 和 NEAREST_NEIGHBOR,这两种模式都不是很好。LINEAR 更好,但仍然会产生可怕的伪影。

Direct2D 是否有任何高质量的缩放选项?如果不是,我最好坚持使用 GDI 还是有其他选择?这是一个在带有各种 Win32 控件的窗口中运行的 Windows 应用程序。

4

1 回答 1

8

Direct2D 1.0 仅支持线性和最近邻插值。Direct2D 1.1 添加了四种额外的插值算法。这些可通过新的设备上下文渲染目标 ( ID2D1DeviceContext) 及其DrawBitmapDrawImage方法获得。看看D2D1_INTERPOLATION_MODE枚举:

http://msdn.com/library/hh447004.aspx

于 2013-01-28T00:28:58.857 回答