Je suis à la recherche d'un moyen comment ce code GDI pour obtenir une image bitmap à partir d'un contexte de périphérique ...Obtenez une image/Bitmap dans un contexte de périphérique ou objet graphique dans 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();
}
. ..peut être fait en GDI + pour recevoir une image GDI + ou Bitmap.
Je cherche une façon de le faire à proximité de ce projet:
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.??????
}
Je n'ai vu le code impliquant des objets GDI et des ressources qui se converti plus tard GDI + objets. Mais aucun d'entre eux n'a encore fonctionné pour moi et je pense qu'il y a une autre façon (facile) de le faire avec l'environnement GDI + beaucoup plus confortable.
Cela semble bien fonctionner! Je viens de découvrir que cela ne fonctionnerait toujours pas si le contenu du contexte de l'appareil était dessiné en utilisant le rendu 32bpp. Mais j'ai demandé que dans une [question séparée] (http://stackoverflow.com/questions/33058788/how-to-get-a-32bpp-bitmap-image-from-a-gdi-device-context), merci pour la contribution. – Vinzenz