C# からロードされた Bitmap オブジェクトを C++ ネイティブ コードに渡すにはどうすればよいですか。実際には、C# から使用する OpenCV API をラップする作業を行っています。
コードやアイデアをいただければ幸いです
メソッドを使用してメモリ内LockBits
のピクセルをロックBitmap
し、P/Invoke 呼び出しを使用して、最初のピクセルへのポインター、寸法、およびストライドを C++ に渡すことができます。
の概要LockBits
: https://web.archive.org/web/20141229164101/http://bobpowell.net/lockingbits.aspx
ネイティブ コードが画像の処理を終了したら、 を使用してロックを解放しますUnlockBits
。
独自のラッパーを実装する代わりに、EmguCVを使用できます。
.NET Bitmap オブジェクトがある場合は、関数GetHBitmap()を使用して、アンマネージ コードからアクセス可能なイメージへのポインターを取得できます。