BitmapData Class
Specifies the attributes of a bitmap image. The BitmapData class is used by the LockBits and UnlockBits methods of the Bitmap class. Not inheritable.
Assembly: System.Drawing (in System.Drawing.dll)
The BitmapData type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | Height | Gets or sets the pixel height of the Bitmap object. Also sometimes referred to as the number of scan lines. |
![]() | PixelFormat | Gets or sets the format of the pixel information in the Bitmap object that returned this BitmapData object. |
![]() | Reserved | Reserved. Do not use. |
![]() | Scan0 | Gets or sets the address of the first pixel data in the bitmap. This can also be thought of as the first scan line in the bitmap. |
![]() | Stride | Gets or sets the stride width (also called scan width) of the Bitmap object. |
![]() | Width | Gets or sets the pixel width of the Bitmap object. This can also be thought of as the number of pixels in one scan line. |
| Name | Description | |
|---|---|---|
![]() | Equals(Object) | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) |
![]() | Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) |
![]() | GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
![]() | ToString | Returns a string that represents the current object. (Inherited from Object.) |
The following code example demonstrates how to use the BitmapData class with the LockBits and UnlockBits methods. This example is designed to be used with Windows Forms. To run this example, paste it into a form and handle the form's Paint event by calling the LockUnlockBitsExample method, passing e as PaintEventArgs.
void LockUnlockBitsExample( PaintEventArgs^ e ) { // Create a new bitmap. Bitmap^ bmp = gcnew Bitmap( "c:\\fakePhoto.jpg" ); // Lock the bitmap's bits. Rectangle rect = Rectangle(0,0,bmp->Width,bmp->Height); System::Drawing::Imaging::BitmapData^ bmpData = bmp->LockBits( rect, System::Drawing::Imaging::ImageLockMode::ReadWrite, bmp->PixelFormat ); // Get the address of the first line. IntPtr ptr = bmpData->Scan0; // Declare an array to hold the bytes of the bitmap. // This code is specific to a bitmap with 24 bits per pixels. int bytes = Math::Abs(bmpData->Stride) * bmp->Height; array<Byte>^rgbValues = gcnew array<Byte>(bytes); // Copy the RGB values into the array. System::Runtime::InteropServices::Marshal::Copy( ptr, rgbValues, 0, bytes ); // Set every third value to 255. for ( int counter = 2; counter < rgbValues->Length; counter += 3 ) rgbValues[ counter ] = 255; // Copy the RGB values back to the bitmap System::Runtime::InteropServices::Marshal::Copy( rgbValues, 0, ptr, bytes ); // Unlock the bits. bmp->UnlockBits( bmpData ); // Draw the modified image. e->Graphics->DrawImage( bmp, 0, 150 ); }
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.
