Delphi 将TJPEG图像转换为字节数组
我在客户机/服务器中实现网络摄像头功能,并通过套接字以JPEG格式发送/接收每个帧。为了做到这一点,我将JPEG转换成一个字节数组,然后发送它。服务器将其作为字节数组接收,并将其转换为JPEG 我的问题是如何高效地将JPEG转换为字节数组(反之亦然) 我现在的做法似乎并不理想。我目前正在创建一个TMemoryStream,将JPEG保存到其中,然后将该流读取到一个字节数组中。然后在服务器端,一旦它接收到数组,我将创建一个TMemoryStream,将数组写入其中,然后创建一个TJpegImage并将流加载到其中Delphi 将TJPEG图像转换为字节数组,delphi,Delphi,我在客户机/服务器中实现网络摄像头功能,并通过套接字以JPEG格式发送/接收每个帧。为了做到这一点,我将JPEG转换成一个字节数组,然后发送它。服务器将其作为字节数组接收,并将其转换为JPEG 我的问题是如何高效地将JPEG转换为字节数组(反之亦然) 我现在的做法似乎并不理想。我目前正在创建一个TMemoryStream,将JPEG保存到其中,然后将该流读取到一个字节数组中。然后在服务器端,一旦它接收到数组,我将创建一个TMemoryStream,将数组写入其中,然后创建一个TJpegImage
我的方法似乎需要很多步骤和内存分配。有更好的方法吗?无需转换,您可以直接将jpeg图像保存到流,传输流,然后从流中加载jpeg :…供参考,特别是因为数据块的
TMemoryStream.Memory
可以直接作为TMemoryStream.Size
长度的字节数组处理(只是不要将其视为动态数组,因为它不是)。谢谢。但是TMemoryStream.Memory
不是只读的吗?我没有使用具有“ReceiveStream”方法的套接字库,因此我应该如何处理接收端的情况?因为我不知道您使用的是哪个库,我不得不猜测类似于FMyMemoryStream.Write(Buf^,DataLen)的内容;应该使用您的组件