0

我需要使用 c++/cli 将图像发送到字节数组中。图像最初是 Iplimage 格式。

    int img_sz1 = img1->width * img1->height * img1->nChannels;
    array <Byte>^ hh1 = gcnew array<Byte> (img_sz1);
    Marshal::Copy( (IntPtr)img->imageData, hh1, 0, img_sz1 );

它工作正常。

我添加了编码步骤以将其作为 jpeg 发送

    CvMat* buf1 = cvEncodeImage(".jpeg", img1, jpeg_params);
    img_sz1=buf1->width*buf1->height 
    Marshal::Copy( (IntPtr)buf1, hh1, 0, img_sz1 );

现在它编译得很好,但在 marshal:copy 行给了我错误

 An unhandled exception of type 'System.AccessViolationException' occurred in   
 mscorlib.dll. Additional information: Attempted to read or write protected memory. 

非常感谢任何帮助。

4

1 回答 1

1

的返回cvEncodeImage是一个单行矩阵,包含编码的图像数据。您现在要复制的是结构本身,例如宽度字段、高度字段等。我相信您需要从中复制buf1->data

于 2012-07-13T02:26:08.287 回答