ZeroMQ pyzmq通过tcp发送jpeg图像

use*_*088 5 jpeg image zeromq pyzmq

我试图通过与pyzmq的ZeroMQ连接发送jpeg图像文件,但输出是输入大小的3倍,不再是有效的jpeg.我加载图像并发送...

f = open("test1.jpg",'rb')
strng = f.read()
socket.send(strng)
f.close()
Run Code Online (Sandbox Code Playgroud)

我收到并保存...

message = socket.recv()
f = open("test2.jpg", 'w')
f.write(str(message))
f.close()
Run Code Online (Sandbox Code Playgroud)

我是zmq的新手,我找不到有关发送图像的任何信息.有没有人通过ZeroMQ发送图像,或者有任何关于如何找到问题的想法?

小智 7

在发送文件之前,您可以"base64"对其进行编码并在接收时对其进行解码.

发送:

import base64
f = open("test1.jpg",'rb')
bytes = bytearray(f.read())
strng = base64.b64encode(bytes)
socket.send(strng)
f.close()
Run Code Online (Sandbox Code Playgroud)

接收:

import base64
message = socket.recv()
f = open("test2.jpg", 'wb')
ba = bytearray(base64.b64decode(message))
f.write(ba)
f.close()
Run Code Online (Sandbox Code Playgroud)