0 out of 2 rated this helpful Rate this topic

Bitmap.GetHbitmap Method

Creates a GDI bitmap object from this Bitmap.

Namespace:  System.Drawing
Assembly:  System.Drawing (in System.Drawing.dll)
[SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)]
public IntPtr GetHbitmap()

Return Value

Type: System.IntPtr
A handle to the GDI bitmap object that this method creates.
Exception Condition
ArgumentException

The height or width of the bitmap is greater than MaxValue.

Exception

The operation failed.

You are responsible for calling the GDI DeleteObject method to free the memory used by the GDI bitmap object. For more information about GDI bitmaps, see Bitmaps in the Windows GDI documentation.

The following code example demonstrates how to use the GetHbitmap method.


[System.Runtime.InteropServices.DllImport("gdi32.dll")]
public static extern bool DeleteObject(IntPtr hObject);


private void DemonstrateGetHbitmap()
{
    Bitmap bm = new Bitmap("Picture.jpg");
    IntPtr hBitmap = bm.GetHbitmap();

    // Do something with hBitmap.
    DeleteObject(hBitmap);
}


.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
  • SecurityPermission  

    for calling into unmanaged code. Related enumeration: UnmanagedCode

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Did you find this helpful?
(2000 characters remaining)
Community Content Add
Annotations FAQ
Incompatibility with legacy GDI
$0Creating Monochrome Bitmap from HBITMAP got by GDI+ Bitmap::GetHBITMAP does not work.$0 $0The HBITMAP got from BITMAP::GetHBITMAP() returns an HBITMAP with Alpha Channel all set to 0xFF.$0 $0GDI can perform comparison only if the reserved Alpha channel of the HBITMAP is zero.$0 $0$0 $0 $0This must be 0x00 for SetBkColor() Comparison to work.$0 $0Hence, the Soln: Loop through each pixel and set the Alpha Component to Zero.$0