首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# DllImport -指向指针接收图像的指针(uchar**)

C# DllImport -指向指针接收图像的指针(uchar**)
EN

Stack Overflow用户
提问于 2015-07-24 18:31:50
回答 1查看 265关注 0票数 1

我正在尝试从v软件的DLLImport remoteApi.dll中获取simxGetVisionSensorImage函数.下面是函数描述的链接:http://www.coppeliarobotics.com/helpFiles/en/remoteApiFunctions.htm#simxGetVisionSensorImage

下面是上面链接中对此函数的简要描述:

描述:检索视觉传感器的图像。如果以前没有调用simHandleVisionSensor,返回的数据就没有意义(如果视觉传感器没有被标记为显式处理,则在主脚本中默认调用simHandleVisionSensor)。使用simxGetLastCmdTime函数验证检索到的数据的“新鲜度”。

C简介: simxInt simxGetVisionSensorImage(simxInt clientID,simxInt sensorHandle,simxInt*分辨率,simxUChar**图像,simxUChar选项,simxInt operationMode)

C参数:

clientID:客户机ID.。请参阅simxStart。

视觉传感器的sensorHandle:手柄

分辨率:指向接收图像分辨率的2个simxInt值的指针

图像:指向图像数据指针的指针。

选项:图像选项,位编码: bit0集:每个图像像素是一个字节(灰度图像),否则每个图像像素都是一个rgb字节三重奏。

operationMode:是一种远程API函数操作模式.

下面是我导入它的方式(simxGetVisionSensorImage函数):

代码语言:javascript
复制
    [DllImport("remoteApi.dll", CallingConvention = CallingConvention.Cdecl)]
    public extern static simx_error simxGetVisionSensorImage(int clientID, int sensorHandle, out int resolution, out IntPtr image, char option, simx_opmode opmode);

我就是这样称呼它的:

代码语言:javascript
复制
int intResolution = 0;
char option = '\0';
IntPtr imageIntPtr= IntPtr.Zero;
simxGetVisionSensorImage(intClientID, intCamera1Handle, out intResolution, out imageIntPtr, option, simx_opmode.streaming);

它成功运行,intResolution为128,运行后也验证了imageIntPtr。但是,我不知道如何将"imageIntPtr“变量转换为图像或位图。

如果有人能帮我做这件事我真的很感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-24 18:45:17

最简单的方法是从它构建一个新的Bitmap

代码语言:javascript
复制
var bmp = new Bitmap(bitmapWidth, bitmapHeight, 3 * bitmapWidth,
    PixelFormat.Format24bppRgb, ptrFromApi);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31617442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档