この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

Bitmap.UnlockBits メソッド (BitmapData)

 

公開日: 2016年10月

このロックを解除 Bitmap システム メモリです。

名前空間:   System.Drawing
アセンブリ:  System.Drawing (System.Drawing.dll 内)

[SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)]
public void UnlockBits(
	BitmapData bitmapdata
)

パラメーター

bitmapdata
Type: System.Drawing.Imaging.BitmapData

A BitmapData ロック操作に関する情報を指定します。

Exception Condition
Exception

操作に失敗しました。

BitmapData の属性を指定します、 Bitmap, 、サイズ、ピクセル形式、メモリ内のピクセル データの開始アドレスと各スキャン ライン (stride) の長さなどです。

次のコード例を使用する方法を示しています、 PixelFormat, 、Height, 、Width, 、および Scan0 プロパティ;、 LockBitsUnlockBits メソッドおよび ImageLockMode 列挙します。 この例は設計されており、ピクセル形式がすべて正しく機能するを使用する方法の例を提供する、 LockBits メソッドです。 この例は、Windows フォームでの使用を意図して設計しています。 この例を実行する、フォームに貼り付け、フォームの処理 Paint イベントを呼び出して、 LockUnlockBitsExample を渡してメソッドを e として PaintEventArgsします。

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

        }

.NET Framework
1.1 以降で使用可能
トップに戻る
表示: