[表示 : 全て 最新50 1-99 101- 2chのread.cgiへ]
Update time : 03/08 23:54 / Filesize : 48 KB / Number-of Response : 175
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ふらっとC♯, C#(初心者用) Part14



13 名前:デフォルトの名無しさん [2007/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みたいな奴があれば解決するのか?とも思うのですが,
やり方が分かりません.
どなたかご教授下さい.






[ 続きを読む ] / [ 携帯版 ]

全部読む 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<48KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef