ふらっとC♯, C#(初心者用) Part14at TECH
ふらっとC♯, C#(初心者用) Part14 - 暇つぶし2ch13:デフォルトの名無しさん
07/03/03 20:46:15
キャプチャーボードからデータを取り込み,Bitmapクラスを用いてBMPデータとしたいのですが,
キャプチャボード上メモリのデータををメインメモリにコピーする方法でつまづいています.

具体的にはカレントフレームのバッファ アドレスを返す関数
byte *fdmpciGetBuffer(void)
があり(これはキャプチャーボードの仕様),
ここからMarshal.Copyを用いてコピーしようとしています・・・が,以下のようなエラーが発生します.

-------エラー
エラー 1 'System.Runtime.InteropServices.Marshal.Copy(int[], int, System.IntPtr, int)' に最も適しているオーバーロード メソッドには無効な引数がいくつか含まれています。 C:\files\vcs\LaserPointer\LaserPointer\Form1.cs 200 13 LaserPointer

エラー 2 引数 '1': 'byte*' から 'int[]' に変換できません。 C:\files\vcs\LaserPointer\LaserPointer\Form1.cs 200 26 LaserPointer
-------

-------ソース
unsafe private void CaptureBMP(){
int BMP_WIDTH=640;
int BMP_HEIGHT=480;

Bitmap bmp = new Bitmap(BMP_WIDTH, BMP_HEIGHT, PixelFormat.Format8bppIndexed);
BitmapData bmp_data = bmp.LockBits(new Rectangle(0, 0, BMP_WIDTH - 1, BMP_HEIGHT - 1), ImageLockMode.ReadWrite, PixelFormat.Format8bppIndexed);

Marshal.Copy(fdmpciGetBuffer(), 0, bmp_data.Scan0, BMP_WIDTH * BMP_HEIGHT);

bmp.UnlockBits(bmp_data);
pictureBox1.Image = bmp;
}
-------

C++でいうMemCpyみたいな奴があれば解決するのか?とも思うのですが,
やり方が分かりません.
どなたかご教授下さい.


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch