如何将从 C# 加载的 Bitmap 对象传递给 C++ 本机代码,实际上我正在包装一些要从 C# 使用的 OpenCV API 但我在从 c# 传递位图并在 c++ 上重建它时遇到了问题
任何代码或想法将不胜感激
您可以使用该LockBits
方法将Bitmap
像素锁定在内存中,并使用 P/Invoke 调用将指向第一个像素的指针、尺寸和步幅传递给 C++。
概述LockBits
:https ://web.archive.org/web/20141229164101/http://bobpowell.net/lockingbits.aspx
在本机代码完成图像处理后,您可以使用UnlockBits
.
如果您有一个 .NET Bitmap 对象,您可以使用函数GetHBitmap()来获取指向可从非托管代码访问的图像的指针。
您可以使用EmguCV而不是实现自己的包装器。