Search
Module:
Directory

   Desktop Functions:

   Smart Device Functions:


Show Recent Changes
Subscribe (RSS)
Misc. Pages
Comments
FAQ
Helpful Tools
Playground
Suggested Reading
Website TODO List
Download Visual Studio Add-In

CreateDIBSection (gdi32)
 
.
Summary
The CreateDIBSection function creates a Device Independent Bitmap (DIB) that applications can write to directly. The function gives you a pointer to the location of the bitmap bit values. You can supply a handle to a file-mapping object that the function will use to create the bitmap, or you can let the system allocate the memory for the bitmap.

C# Signature:

[DllImport("gdi32.dll")]
static extern IntPtr CreateDIBSection(IntPtr hdc, [In] ref BITMAPINFO pbmi,
   uint pila, out IntPtr ppvBits, IntPtr hSection, uint dwOffset);

VB.NET Signature:

  <DllImport("gdi32.dll")> _
  Private Shared Function CreateDIBSection(ByVal hdc As Int32, _
    ByRef pbmi As BITMAPINFO, ByVal iUsage As System.UInt32, _
    ByRef ppvBits As Int32, ByVal hSection As Int32, _
    ByVal dwOffset As System.UInt32) As Int32
  End Function

C# User-Defined Types:

  [StructLayout(LayoutKind.Sequential)]
    public class BITMAPINFO {
      public Int32 biSize;
      public Int32 biWidth;
      public Int32 biHeight;
      public Int16 biPlanes;
      public Int16 biBitCount;
      public Int32 biCompression;
      public Int32 biSizeImage;
      public Int32 biXPelsPerMeter;
      public Int32 biYPelsPerMeter;
      public Int32 biClrUsed;
      public Int32 biClrImportant;
      public Int32 colors;
    }

VB.NET User-Defined Types:

  <StructLayout(LayoutKind.Sequential)> _
  Private Class BITMAPINFOHEADER
      Public biSize As Int32
      Public biWidth As Int32
      Public biHeight As Int32
      Public biPlanes As Int16
      Public biBitCount As Int16
      Public biCompression As Int32
      Public biSizeImage As Int32
      Public biXPelsPerMeter As Int32
      Public biYPelsPerMeter As Int32
      Public biClrUsed As Int32
      Public biClrImportant As Int32
  End Class

  <StructLayout(LayoutKind.Sequential)> _
    Private Structure RGBQUAD
    Dim rgbBlue As Byte
    Dim rgbGreen As Byte
    Dim rgbRed As Byte
    Dim rgbReserved As Byte
    End Structure

  <StructLayout(LayoutKind.Sequential)> _
    Private Structure BITMAPINFO
    Dim bmiheader As BITMAPINFOHEADER
    Dim bmiColors As RGBQUAD
    End Structure

Notes:

The BITMAPINFO structure defines the dimensions and color information for a DIB, it contains the members:

    A BITMAPINFOHEADER structure that contains information about the dimensions of color format
    bmiColors - contains one of the following:
        An array of RGBQUAD. The elements of the array that make up the color table.
        An array of 16-bit unsigned integers that specifies indexes into the currently realized logical             palette. This use of bmiColors is allowed for functions that use DIBs.

See MSDN Documentation for BITMAPINFO concerning specific details concerning structure members.

Tips & Tricks:

Please add some!

Sample Code:

Please add some!

Alternative Managed API:

Do you know one? Please contribute it!

Documentation

Please edit this page!

Do you have...

  • helpful tips or sample code to share for using this API in managed code?
  • corrections to the existing content?
  • variations of the signature you want to share?
  • additional languages you want to include?

Select "Edit This Page" on the right hand toolbar and edit it! Or add new pages containing supporting types needed for this API (structures, delegates, and more).

 
Access PInvoke.net directly from VS:
Terms of Use
Find References
Show Printable Version
Revisions