BitmapData BitmapData BitmapData BitmapData Class

定義

ビットマップ イメージの属性を指定します。Specifies the attributes of a bitmap image. BitmapData クラスは、Bitmap クラスの LockBits メソッドおよび UnlockBits(BitmapData) メソッドで使用されます。The BitmapData class is used by the LockBits and UnlockBits(BitmapData) methods of the Bitmap class. 継承はできません。Not inheritable.

public ref class BitmapData sealed
public sealed class BitmapData
type BitmapData = class
Public NotInheritable Class BitmapData
継承
BitmapDataBitmapDataBitmapDataBitmapData

次のコード例は、使用する方法を示します、BitmapDataクラス、LockBitsUnlockBitsメソッド。The following code example demonstrates how to use the BitmapData class with the LockBits and UnlockBits methods. この例は、Windows フォームで使用する設計されています。This example is designed to be used with Windows Forms. この例を実行するフォームに貼り付けることと、フォームの処理Paintイベントを呼び出すことによって、LockUnlockBitsExampleを渡してメソッドeとしてPaintEventArgsします。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 );
}
private void LockUnlockBitsExample(PaintEventArgs e)
    {

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

        // Lock the bitmap's bits.  
        Rectangle rect = new 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.
        int bytes  = Math.Abs(bmpData.Stride) * bmp.Height;
        byte[] rgbValues = new byte[bytes];

        // Copy the RGB values into the array.
        System.Runtime.InteropServices.Marshal.Copy(ptr, rgbValues, 0, bytes);

        // Set every third value to 255. A 24bpp bitmap will look red.  
        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);

    }

Private Sub LockUnlockBitsExample(ByVal e As PaintEventArgs)

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

    ' Lock the bitmap's bits.  
    Dim rect As New Rectangle(0, 0, bmp.Width, bmp.Height)
    Dim bmpData As System.Drawing.Imaging.BitmapData = bmp.LockBits(rect, _
        Drawing.Imaging.ImageLockMode.ReadWrite, bmp.PixelFormat)

    ' Get the address of the first line.
    Dim ptr As IntPtr = bmpData.Scan0

    ' Declare an array to hold the bytes of the bitmap.
    ' This code is specific to a bitmap with 24 bits per pixels.
    Dim bytes As Integer = Math.Abs(bmpData.Stride) * bmp.Height
    Dim rgbValues(bytes - 1) As Byte

    ' Copy the RGB values into the array.
    System.Runtime.InteropServices.Marshal.Copy(ptr, rgbValues, 0, bytes)

    ' Set every third value to 255. A 24bpp image will look red.
    For counter As Integer = 2 To rgbValues.Length - 1 Step 3
        rgbValues(counter) = 255
    Next

    ' 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)

End Sub

コンストラクター

BitmapData() BitmapData() BitmapData() BitmapData()

BitmapData クラスの新しいインスタンスを初期化します。Initializes a new instance of the BitmapData class.

プロパティ

Height Height Height Height

Bitmap オブジェクトの高さ (ピクセル単位) を取得または設定します。Gets or sets the pixel height of the Bitmap object. スキャン ラインの数を指す場合もあります。Also sometimes referred to as the number of scan lines.

PixelFormat PixelFormat PixelFormat PixelFormat

この BitmapData オブジェクトを返した Bitmap オブジェクトに格納されているピクセル情報の形式を取得または設定します。Gets or sets the format of the pixel information in the Bitmap object that returned this BitmapData object.

Reserved Reserved Reserved Reserved

予約済み。Reserved. 使用しないでください。Do not use.

Scan0 Scan0 Scan0 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 Stride Stride Stride

Bitmap オブジェクトのストライド幅 (スキャン幅とも呼ばれる) を取得または設定します。Gets or sets the stride width (also called scan width) of the Bitmap object.

Width Width Width Width

Bitmap オブジェクトの幅 (ピクセル単位) を取得または設定します。Gets or sets the pixel width of the Bitmap object. これを 1 つのスキャン ラインのピクセル数と考えることもできます。This can also be thought of as the number of pixels in one scan line.

メソッド

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)

適用対象