我想将gdi + Bitmap转换为gdi对象HBitmap。
我使用以下方法:
Bitmap* img = new Bitmap(XXX);
// lots of codes...
HBITMAP temp;
Color color;
img->GetHBITMAP(color, &temp);
img对象正在绘制一个对话框。 当调用这部分方法时,会发生奇怪的事情! 窗口中显示的img改变了! 它变得更清晰或更清晰。 我的问题是会发生什么?
答案 0 :(得分:2)
位图像素格式可能是原因。您是否在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);