【发布时间】:2013-11-15 05:32:57
【问题描述】:
我正在用 c++、gdi 编写代码 我使用stretchDIBits 将图像绘制到dc。
::SetStretchBltMode(hDC, HALFTONE);
::StretchDIBits(
hDC,
des.left,des.top,des.right - des.left,des.bottom - des.top,
0, 0,
img.getWidth(),
img.getHeight(),
(img.accessPixels()),
(img.getInfo()),
DIB_RGB_COLORS,
SRCCOPY
);
但是它很慢。 所以我改用DrawDib函数。
::SetStretchBltMode(hDC, HALFTONE);
DrawDibDraw(
hdd,
hDC,
des.left,des.top,des.right - des.left,des.bottom - des.top,
(LPBITMAPINFOHEADER)(img.getInfo()),
(img.accessPixels()),
0, 0,
img.getWidth(),
img.getHeight(),
DDF_HALFTONE
);
但是结果就像通过 COLORONCOLOR 模式绘制一样。 如何提高绘图质量?
【问题讨论】:
-
DrawDib的东西已经过时了。你能解释一下你说的太慢是什么意思吗?您是否尝试在实时视频中执行此操作?您是否尝试将其应用于非常大的图像?需要多长时间?您需要多快?
标签: c++ performance gdi drawdib