c ++套接字接收图像并显示而不保存

时间:2013-07-22 06:56:37

标签: c++ sockets opencv

我想从客户端收到一张图片。

当我们将图像保存到JPG文件时,我们可以在服务器端显示图像。

喜欢这个......

    char *buff = (char*)malloc(sizeof(char) * (240*360));    
    FILE *output;    
    output = fopen("test.jpg", "wb");    
    unsigned int readBytes = 0;    
    while(true)    
    {    
        int ret = recv(sClient, buff+readBytes, (240*360)-readBytes, 0);    
        if (ret <= 0)    
        {    
            break;    
        }    
                readBytes += ret;    
    }    
    fwrite(buff, sizeof(char), readBytes, output);    
    fclose( output );    

    Mat img_2 = imread( "test.jpg");

但是有没有办法直接通过收到的char * ??

来获取接收到的图像的Mat

谢谢!

1 个答案:

答案 0 :(得分:1)

“但是有没有办法直接通过收到的char * ??”

来获取接收到的图像的Mat 是的,有。而不是保存到磁盘并重新加载,您可以使用imdecode()