在C#和C+之间传输图像数据+;

在C#和C+之间传输图像数据+;,c#,image,pixel,windows,C#,Image,Pixel,Windows,我正在做一个项目,我将在C#windows应用程序中创建一个用户界面。它需要显示一张图片。我想把图片数据传送到一个C++模块,然后编辑它,然后返回结果。 我已经建立了如何在C和C++之间传输数据(我使用C++ DLL)。我的问题是:C#的哪个班级可以做我想做的事?我需要它来输出图像数据到某种像素矩阵(最好是分离的RGB值,每个大小1字节= 3字节每像素),我可以在C++模块中工作。此外,它还需要能够将结果导入到对象中,并显示在C#windows应用程序窗口中 你知道哪门课最适合我吗 谢谢你,Ma

我正在做一个项目,我将在C#windows应用程序中创建一个用户界面。它需要显示一张图片。我想把图片数据传送到一个C++模块,然后编辑它,然后返回结果。 我已经建立了如何在C和C++之间传输数据(我使用C++ DLL)。我的问题是:C#的哪个班级可以做我想做的事?我需要它来输出图像数据到某种像素矩阵(最好是分离的RGB值,每个大小1字节= 3字节每像素),我可以在C++模块中工作。此外,它还需要能够将结果导入到对象中,并显示在C#windows应用程序窗口中

你知道哪门课最适合我吗


谢谢你,Malki。

如果你想像你描述的那样处理像素数据,那么Bitmap.LockBits就是你的方法。

你的dll的方法期望输入参数是什么


编辑:据我所知,在c#中,您需要进入“不安全模式”以直接处理像素(并且快速:)。类似于。

除了danbystrom关于Bitmap.LockBits的回答之外,您还需要查看用于复制二进制数据的封送处理类。查看Marshal.Copy方法以获取示例。

回答大家的问题!:-)

<不,不需要任何封送处理,如果你只想把像素传递给本机C++,不需要任何不安全代码。 <>你可以看看这个帖子,我是这样做的,调用一个包含手工汇编语言的C++函数来做一些图像处理: