我在C++,gdi +中編寫代碼。如何將GDI +的圖像*轉換爲位圖*
我利用Image的GetThumbnail()方法來獲取縮略圖。 但是,我需要將其轉換爲HBITMAP。 我知道下面的代碼可以得到GetHBITMAP:
Bitmap* img;
HBITMAP temp;
Color color;
img->GetHBITMAP(color, &temp); // if img is Bitmap* this works well。
但我怎麼能轉換圖片*成位圖*快? 非常感謝!
其實,現在我必須使用以下方法:
int width = sourceImg->GetWidth(); // sourceImg is Image*
int height = sourceImg->GetHeight();
Bitmap* Result;
result = new Bitmap(width, height,PixelFormat32bppRGB);
Graphics gr(result);
//gr.SetInterpolationMode(InterpolationModeHighQuality);
gr.DrawImage(&sourceImg,0,0,width,height);
我真的不知道他們爲什麼不提供圖片* - >位圖*方法。但讓GetThumbnail()API返回一個Image對象....
你做的方式是好的。它之所以無法在一般情況下轉換爲「快速」,是因爲「Image」根本不一定是位圖 - 它可能是一個矢量圖像(儘管我知道GDI +支持的唯一矢量格式是WMF/EMF)。我會想象在這種情況下,`GetThumbnail`也會產生一個矢量圖像。 – 2009-07-22 08:16:55
非常感謝!您的評論聽起來合理! – user25749 2009-07-22 08:39:31