疑问
1. 发送图片是以什么格式
2. 字节数据怎么保存到本地
3. 怎么对传输不同设备发送的图片进行分类存储
4. udp实现
解答
1.以字节
a.先用cv.imread() 将图片变成图片 二维数组 <class 'numpy.ndarry'>
b cv.imencode 将图片压缩 成数组对象 ndarry
c. 使用array()的函数 将数组对象编程一维数组
列表不存在维度问题,但数组是有维度的,而np.array()的作用就是把列表转化为数组,也可以说是用来产生数组
同样,也可以将数组对象编程数组
d. 将数组用tostring() 将数组转变为bytes 【二进制字符串】
tostring()函数
2.
1.就用文件写入的方法 ,将字节数据写入
img_name = 'zed'+'.jpg'
path = "./" + img_name
with open(path, 'wb') as f:
f.write(data)
3. zed tof 接收的图片
待定
4.
发送
# only jpg
img = cv.imread('qqq.jpg',0)
img_encode = cv.imencode('.jpg', img)[1]
data_encode = np.array(img_encode)
data = data_encode.tobytes()
s.sendto(data, ('127.0.0.1', 9999))
s.close()
接收
# 接收数据:
data, addr = s.recvfrom(400000)
print('sssss',type(data))
# if目前是不能判断 转成原始文件,用文件名?
img_name = 'zed' + '.jpg'
path = "./" + img_name
with open(path, 'wb') as f:
f.write(data)
imageSize = os.path.getsize(path)
imageSize /= 1024 # 除以1024是代表Kb
imageSize = round(imageSize)
标签:udp,img,python,数组,path,接收,data,cv,图片 From: https://www.cnblogs.com/mxleader/p/17047582.html