将位图从 C# 传递到C++

Pass bitmap from C# to C++

本文关键字:C++ 位图      更新时间:2023-10-16

如何将从 C# 加载的位图对象传递给本机代码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 位图对象,你可以使用函数 GetHBitmap() 来获取一个指针,指向可从非托管代码访问的图像。

您可以使用EmguCV,而不是实现自己的包装器。