我正在开发一个项目,我将在C#windows应用程序中创建用户界面。它需要显示图片。我想将图片数据传输到C ++模块,该模块将对其进行编辑,然后返回结果。
我已经建立了如何在C#和C ++之间传输数据(我使用的是C ++ DLL)。我的问题是:C#中的哪个类可以做我想要的?我需要它将图像数据导出到某种像素矩阵(最好是具有单独的RGB值,每个像素大小为1字节=每个像素3个字节),我可以在C ++模块中使用它。此外,它需要能够将结果导回到对象中,并显示在C#windows应用程序窗口中。
哪些课程可能最适合我?
谢谢,Malki。
答案 0 :(得分:3)
如果您想在描述时使用像素数据,那么Bitmap.LockBits就是您的方法。
答案 1 :(得分:0)
你的dll方法对输入参数的期望是什么?
编辑:据我所知,在c#中你需要进入“不安全模式”才能直接使用像素(并快速:))。类似于this。答案 2 :(得分:0)
除了danbystrom关于Bitmap.LockBits的答案,你还需要查看Marshal类来复制二进制数据。检查Marshal.Copy方法以获取示例。
答案 3 :(得分:0)
回答你们所有人! : - )
不,您不需要任何编组,如果您只想将像素传递给本机C ++,则不需要任何不安全的代码。
你可以查看这篇帖子,我是完全这个,调用包含手工制作的汇编语言的C ++函数来进行一些图像处理: