How to Convert GDI+'s Image* into Bitmap*

bitmap, c++, gdi+, image

Solution

Image* img = ???;
Bitmap* bitmap = new Bitmap(img);

Edit: I was looking at the.NET reference of GDI+, but here is how .NET implements that constructor.

using (Graphics graphics = null)
{
    graphics = Graphics.FromImage(bitmap);
    graphics.Clear(Color.Transparent);
    graphics.DrawImage(img, 0, 0, width, height);
}

All those function are avaliable in the C++ version of GDI+

Problem

I am writting code in c++, gdi+. I make use of Image's GetThumbnail() method to get thumbnail. However, I need to convert it into HBITMAP. I know the following code can get GetHBITMAP: ``` Bitmap* img; HBITMAP temp; Color color; img->GetHBITMAP(color, &temp); // if img is Bitmap* this works well。 ``` But how can I convert Image* into Bitmap* fast? Many thanks! Actually, now I have to use the following method: ``` 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); ``` I really don't know why they do not provide Image* - > Bitmap* method. but let GetThumbnail() API return a Image object....

Original source