Я использую C ++ GDI, StretchDIBits для рисования изображений на DC.
Поскольку исходное изображение большое, и требуется высокое качество.
Я использую режим HAFTONE, для рисования всего изображения на постоянном токе (увеличения изображения) требуется много времени.
Поэтому я решил частично рисовать, используя StretchDIBits.
Но есть серьезная проблема с StretchDIBits.
Я могу нарисовать прямоугольник только в целых числах в области в целых числах (ширина и высота, а верхняя левая точка x, y - целые числа)
::SetStretchBltMode(hdc, HALFTONE);
::StretchDIBits(hdc,
realDrawRect.left,
realDrawRect.top,
realDrawRect.right - realDrawRect.left,
realDrawRect.bottom - realDrawRect.top,
left,
top,
width,
height,
pImageDIB,
pImageHead,
DIB_RGB_COLORS, SRCCOPY);
, если изображение 21 * 21.
Сейчас я рисую (5, 5, 7, 7) в DC, в (20, 20, 60, 60), в следующий раз, когда я хочу рисовать в (21, 20, 61, 60).
на исходном изображении нет соответствующего местоположения. Так что я могу только нарисовать аппроксимацию прямоугольника к DC. Теперь проблема происходит, изображение дрожит !!
Меня раздражает эта проблема.
Как я могу избежать тряски?