Out of Memory from capuring screenshots

后端 未结 2 1307
挽巷
挽巷 2021-01-15 05:21

Hello there I have a problem. I have a setup to capture Screenshots of my WebBrowser control:

public static class Utilities
{
    public const int SRCCOPY =          


        
2条回答
  •  心在旅途
    2021-01-15 05:44

    My GDI is a bit rusty on order of operations... but have you tried moving Gdi.DeleteDC(hdcDest) after Gdi32.DeleteObject(hBitmap)?

    It would seem like DeleteDC should be the last thing you do after cleaning up all associated objects with that DC.

    Here is how I would think to reorder it:

        IntPtr hOld = Gdi32.SelectObject(hdcDest, hBitmap);
        Gdi32.BitBlt(hdcDest, 0, 0, width, height, hdcSrc, 0, 0, SRCCOPY);
    
        Image image = Image.FromHbitmap(hBitmap);
    
        Gdi32.SelectObject(hdcDest, hOld);
        Gdi32.DeleteObject(hBitmap);
    
        Gdi32.DeleteDC(hdcDest);
        User32.ReleaseDC(handle, hdcSrc);
    

提交回复
热议问题