python 图片转字符串的一种方法(非base64,不增加size)
引言: 做树莓派4g飞控图传一体机,实时画面图片需放进json跟随回传参数等同时提交到服务器,采用web方式,开始采用base64编码,结果传输负担增大33.333%,所以一直在找更优化的方案,偶然一次做项目开发,做通信的时候,发现decode(“ascii”)只能解0-127(b"\x00–\x7f"),而chr可以解0-255(b"\x00–\xff"),马上就想到了解决方案,特此记录。
(理论上此方案可用于所有文件不增大size的解码传输)
代码
f = open("img.jpg","rb")
# 读取文件
img = f.read()
f.close()
# 创建缓存
# =======================
# 解码
a = ""
for i in img :
# 转换连接
a += chr(i)
print(type(a))
print(len(a))
# ======================
# 编码
b = b''
for i in a :
# 转换连接
b += ord(i).to_bytes(length=1,byteorder="big")
print(type(b))
print(len(b))
f = open("res.jpg","wb")
f.write(b)
f.close()