private static IntPtr CreateNewHDC(IntPtr outputHdc, Rectangle bounds, out IntPtr DIB) { IntPtr compatHdc = NativeMethod.CreateCompatibleDC(outputHdc); BITMAPINFO info = default(BITMAPINFO); info.bmiHeader = new BITMAPINFOHEADER(); info.bmiHeader.biSize = (uint)Marshal.SizeOf(info); info.bmiHeader.biWidth = bounds.Width; info.bmiHeader.biHeight = -bounds.Height; info.bmiHeader.biPlanes = 1; info.bmiHeader.biBitCount = 32; info.bmiHeader.biCompression = 0; DIB = NativeMethod.CreateDIBSection(outputHdc, ref info, 0u, 0, IntPtr.Zero, 0u); NativeMethod.SelectObject(compatHdc, DIB); return(compatHdc); }