如何在Direct2D中执行高质量的位图缩放?

时间:2013-01-27 21:06:43

标签: bitmap gdi scaling direct2d

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

显然我在HALFTONE模式下使用了StretchBlt(),这会产生很好但很慢的结果。

现在我使用RenderTarget-> DrawBitmap()绘制Direct2D,但它只有两种模式,LINEAR和NEAREST_NEIGHBOR,两者都不是很好。 LINEAR更好,但仍会产生可怕的文物。

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

1 个答案:

答案 0 :(得分:7)

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

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