我正在使用C++和GDI+编写代码。
我使用Image的GetThumbnail()方法来获取缩略图。 然而,我需要将其转换为HBITMAP。 我知道以下代码可以获得GetHBITMAP:
```cpp HBITMAP hBitmap; thumbnail->GetHBITMAP(Color::White, &hBitmap); ```
Bitmap* img;
HBITMAP temp;
Color color;
img->GetHBITMAP(color, &temp); // if img is Bitmap* this works well。
但是我该如何快速将Image*转换为Bitmap*呢?非常感谢!
实际上,现在我必须使用以下方法:
int width = sourceImg->GetWidth(); // sourceImg is Image*
int height = sourceImg->GetHeight();
Bitmap* result = new Bitmap(width, height,PixelFormat32bppRGB);
Graphics gr(result);
//gr.SetInterpolationMode(InterpolationModeHighQuality);
gr.DrawImage(sourceImg, 0, 0, width, height);
我真的不知道为什么他们不提供Image* -> Bitmap*方法,而是让GetThumbnail() API返回一个Image对象....
Image
并不一定是位图 - 它可以是矢量图像(尽管我知道的唯一被 GDI+ 支持的矢量格式是 WMF/EMF)。我想,在这种情况下,GetThumbnail
也会生成一个矢量图像。 - Pavel Minaev