Skip to main content
.NET Framework Class Library
Bitmap Constructor (Int32, Int32, Int32, PixelFormat, IntPtr)

Initializes a new instance of the Bitmap class with the specified size, pixel format, and pixel data.

Namespace: System.Drawing
Assembly: System.Drawing (in System.Drawing.dll)
Syntax
Public Sub New ( _
	width As Integer, _
	height As Integer, _
	stride As Integer, _
	format As PixelFormat, _
	scan0 As IntPtr _
)
public Bitmap(
	int width,
	int height,
	int stride,
	PixelFormat format,
	IntPtr scan0
)
public:
Bitmap(
	int width, 
	int height, 
	int stride, 
	PixelFormat format, 
	IntPtr scan0
)
new : 
        width:int * 
        height:int * 
        stride:int * 
        format:PixelFormat * 
        scan0:IntPtr -> Bitmap

Parameters

width
Type: System..::.Int32
The width, in pixels, of the new Bitmap.
height
Type: System..::.Int32
The height, in pixels, of the new Bitmap.
stride
Type: System..::.Int32
Integer that specifies the byte offset between the beginning of one scan line and the next. This is usually (but not necessarily) the number of bytes in the pixel format (for example, 2 for 16 bits per pixel) multiplied by the width of the bitmap. The value passed to this parameter must be a multiple of four..
format
Type: System.Drawing.Imaging..::.PixelFormat
The pixel format for the new Bitmap. This must specify a value that begins with Format.
scan0
Type: System..::.IntPtr
Pointer to an array of bytes that contains the pixel data.
Exceptions
ExceptionCondition
ArgumentException

A PixelFormat value is specified whose name does not start with Format. For example, specifying Gdi will cause an ArgumentException, but Format48bppRgb will not.

Remarks

The caller is responsible for allocating and freeing the block of memory specified by the scan0 parameter. However, the memory should not be released until the related Bitmap is released.

Examples

The following code example shows how to use the Bitmap constructor. This example is designed to be used with Windows Forms and requires a PaintEventArgs parameter, which is a parameter of the Paint event.


Private Sub BitmapConstructorEx(ByVal e As PaintEventArgs)

    ' Create a bitmap.
    Dim bmp As New Bitmap("c:\fakePhoto.jpg")

    ' Retrieve the bitmap data from the the bitmap.
    Dim bmpData As System.Drawing.Imaging.BitmapData = bmp.LockBits(New Rectangle(0, 0, bmp.Width, bmp.Height), _
        ImageLockMode.ReadOnly, bmp.PixelFormat)

    'Create a new bitmap.
    Dim newBitmap As New Bitmap(200, 200, bmpData.Stride, bmp.PixelFormat, bmpData.Scan0)

    bmp.UnlockBits(bmpData)

    ' Draw the new bitmap.
    e.Graphics.DrawImage(newBitmap, 10, 10)

End Sub


private void BitmapConstructorEx(PaintEventArgs e)
{

    // Create a bitmap.
    Bitmap bmp = new Bitmap("c:\\fakePhoto.jpg");

   // Retrieve the bitmap data from the the bitmap.
    System.Drawing.Imaging.BitmapData bmpData = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), 
        ImageLockMode.ReadOnly, bmp.PixelFormat);

    //Create a new bitmap.
    Bitmap newBitmap = new Bitmap(200, 200, bmpData.Stride, bmp.PixelFormat, bmpData.Scan0);

    bmp.UnlockBits(bmpData);

    // Draw the new bitmap.
    e.Graphics.DrawImage(newBitmap, 10, 10);

}

Version Information

.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
.NET Framework Security
Platforms

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.
Microsoft is conducting an online survey to understand your opinion of the MSDN Web site. If you choose to participate, the online survey will be presented to you when you leave the MSDN Web site.

Would you like to participate?