- PR -

C# Bitmapインスタンスからビットマップデータを取得する方法

1
投稿者投稿内容
ひろし
会議室デビュー日: 2003/03/18
投稿数: 13
投稿日時: 2005-04-21 23:39
ビットマップデータのみをbyte[]に高速に抜き出す方法を教えてください。
例えばRGB24bit*640*480であれば格納されているbyte[640*480*3]そのものだけを
切り出したいという意味です。
ヘッダー情報、例えばカラーパレットや解像度等は既知であるため不要です。
純粋にビットマップデータのみを直接演算処理しようとしています。
ポインター等を使っても構わないので、できるだけ高速に抜き出す方法が知りたいです。宜しくお願いします。
Hongliang
ぬし
会議室デビュー日: 2004/12/25
投稿数: 576
投稿日時: 2005-04-22 00:07
Bitmap.LockBitsメソッドを使ってBitmapDataオブジェクトを取得し、
Marshal.CopyでBitmapData.Scan0からbyte配列にコピーします。
当然4バイト境界に切り上げられていますから、コピーするサイズにはご注意を。
なか-chan@最愛のiMac
ぬし
会議室デビュー日: 2002/07/17
投稿数: 385
お住まい・勤務地: 和光市・世田谷区
投稿日時: 2005-04-22 11:30
これが一番速いのかどうかはわかりませんが...
http://www.nextftp.com/swlabo/m4_experiment/exp001.htm
こことか...
ひろし
ぬし
会議室デビュー日: 2002/09/16
投稿数: 390
お住まい・勤務地: 兵庫県
投稿日時: 2005-04-23 11:50
ありがとうございます。
SetPixelの遅さを実感していたので勉強になりました。
1

スキルアップ/キャリアアップ(JOB@IT)