Bitmapオブジェクトの画像バッファよりIntPtrを取り出す方法

C#の画像処理
Bitmapオブジェクトに、画像を格納した上で
あ~だこ~だやるわけですが

Bitmapオブジェクトを利用して実装すると、なんか処理が遅い
ってことで、unsafeしちゃって、ポインタでかき回す、ってのが、王道なんですが

その前に、Bitmapオブジェクト内に格納されている、バッファへのポインタを取り出す必要がありまして
その取り出し方は、以下のとおり

Bitmap b = new Bitmap(720,480, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
BitmapData bData = b.LockBits(new Rectangle(0, 0, b.Width, b.Height),
                           ImageLockMode.ReadWrite, PixelFormat.Format32bppRgb);
IntPtr Scan0 = bData.Scan0;	//取り出されたIntPtr
//IntPtrに格納されているバッファへのアドレスを利用して、ごにょごにょする
b.UnlockBits(bData);
Bitmap.LockBits();
Bitmap.UnLockBits();
と、生成されたBitmapDataクラスのScan0プロパティが肝ですな

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください