Я ищу способ, как это GDI код, чтобы получить растровый из контекста устройства ...Получить изображение/Картинку из контекста устройства или графический объект в gdiplus (GDI +)
void CMFCDlg::OnPaint()
{
CDC dc(this); // Device Context for painting
CBitmap backgroundBmp;
// Get Client Area
CRect clientRect;
GetClientRect(&clientRect);
// Create memory DC
CDC memDC;
memDC.CreateCompatibleDC(&dc);
// Create compatible bitmap
backgroundBmp.CreateCompatibleBitmap(&memDC, clientRect.Width(), clientRect.Height());
// Copy Blt Bits from DC to Bitmap
CBitmap* pOldBmp = dc.SelectObject(&backgroundBmp);
memDC.BitBlt(0, 0, clientRect.Width(), clientRect.Height(), &dc, 0, 0, SRCCOPY);
dc.SelectObject(pOldBmp);
// Release the memory DC
memDC.DeleteDC();
}
. .. можно сделать в GDI +, чтобы получить GDI + изображение или растровое изображение.
Я ищу какой-нибудь способ сделать это близко к этому проекту:
void CMFCDlg::OnPaint()
{
CDC dc(this); // Device Context for painting
Bitmap backgroundBmp;
// Get Client Area
CRect clientRect;
GetClientRect(&clientRect);
// Get graphics object from device context
Graphics gr(dc);
// Somehow create a compatible GDI+ bitmap
backgroundBmp = gr.??????
}
Я только видел код с участием GDI объектов и ресурсов, которые впоследствии будут преобразованы в GDI + Objects. Но ни один из них не работал для меня еще, и я чувствую, что есть (легкий) другой способ сделать это с гораздо более удобной средой GDI +.
Кажется, это работает хорошо! Я только что узнал, что это все равно не сработает, если содержимое контекста устройства было нарисовано с использованием 32bpp-рендеринга. Но я спросил, что [отдельный вопрос] (http://stackoverflow.com/questions/33058788/how-to-get-a-32bpp-bitmap-image-from-a-gdi-device-context), спасибо за вклад. – Vinzenz