Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 将TJPEG图像转换为字节数组_Delphi - Fatal编程技术网

Delphi 将TJPEG图像转换为字节数组

Delphi 将TJPEG图像转换为字节数组,delphi,Delphi,我在客户机/服务器中实现网络摄像头功能,并通过套接字以JPEG格式发送/接收每个帧。为了做到这一点,我将JPEG转换成一个字节数组,然后发送它。服务器将其作为字节数组接收,并将其转换为JPEG 我的问题是如何高效地将JPEG转换为字节数组(反之亦然) 我现在的做法似乎并不理想。我目前正在创建一个TMemoryStream,将JPEG保存到其中,然后将该流读取到一个字节数组中。然后在服务器端,一旦它接收到数组,我将创建一个TMemoryStream,将数组写入其中,然后创建一个TJpegImage

我在客户机/服务器中实现网络摄像头功能,并通过套接字以JPEG格式发送/接收每个帧。为了做到这一点,我将JPEG转换成一个字节数组,然后发送它。服务器将其作为字节数组接收,并将其转换为JPEG

我的问题是如何高效地将JPEG转换为字节数组(反之亦然)

我现在的做法似乎并不理想。我目前正在创建一个TMemoryStream,将JPEG保存到其中,然后将该流读取到一个字节数组中。然后在服务器端,一旦它接收到数组,我将创建一个TMemoryStream,将数组写入其中,然后创建一个TJpegImage并将流加载到其中


我的方法似乎需要很多步骤和内存分配。有更好的方法吗?

无需转换,您可以直接将jpeg图像保存到流,传输流,然后从流中加载jpeg

:…供参考,特别是因为数据块的
TMemoryStream.Memory
可以直接作为
TMemoryStream.Size
长度的字节数组处理(只是不要将其视为动态数组,因为它不是)。谢谢。但是
TMemoryStream.Memory
不是只读的吗?我没有使用具有“ReceiveStream”方法的套接字库,因此我应该如何处理接收端的情况?因为我不知道您使用的是哪个库,我不得不猜测类似于FMyMemoryStream.Write(Buf^,DataLen)的内容;应该使用您的组件