Я пишу код в C++, gdi +.Как преобразовать изображение GDI + * в растровое изображение *
Я использую метод GetThumbnail() Image, чтобы получить уменьшенное изображение. Однако мне нужно преобразовать его в 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);
Я действительно не знаю, почему они не обеспечивают изображение * -> Bitmap * метод. но пусть GetThumbnail() API возвращает изображение объекта ....
, как вы делаете это хорошо. Причина, по которой он не может быть преобразован «быстро» в общем, заключается в том, что «Image» не обязательно является растровым изображением вообще - это может быть векторное изображение (хотя единственный векторный формат, который мне известен, поддерживается GDI +, - это WMF/EMF). Я бы предположил, что в этом случае «GetThumbnail» также создаст векторное изображение. –
Большое спасибо! Ваш комментарий звучит разумно! – user25749