Странная проблема с преобразованием между GDI+ в GDI: Bitmap и HBitmap
Я хочу конвертировать gdi+ Bitmap в объект gdi HBitmap.
Я использую следующий метод:
Bitmap* img = new Bitmap(XXX);
// lots of codes...
HBITMAP temp;
Color color;
img->GetHBITMAP(color, &temp);
объект img рисует в диалоге. когда вызывается эта часть метода, происходит странная вещь! отображение img в окне изменилось! Это стало немного яснее или острее. Мой вопрос: что происходит?
1 ответ
Причиной может быть формат растрового пикселя. Вы указываете это явно в конструкторе Bitmap?
Gdiplus::Bitmap bmp(WIDTH, HEIGHT, PixelFormat24bppRGB);
Попробуйте убедиться, что все форматы пикселей, которые вы используете, одинаковы.
Другой причиной могут быть различия в Gdiplus::Graphics
режимы интерполяции в вашем коде. Этот атрибут определяет, как изменяются размеры изображений, как рисуются линии и т. Д.
m_pViewPortImage = new Gdiplus::Bitmap(
observedWidth,
observedHeight,
PixelFormat24bppRGB
);
Gdiplus::Graphics gr(m_pViewPortImage);
gr.SetInterpolationMode(Gdiplus::InterpolationModeHighQualityBicubic);