记一次粗心的大坑!
我把 base64.b64encode() 和 base64.b64decode() 当成一个方法了,结果就是老报错,解决报错又数据无效,但是又找不到那里不对劲。一个人耗了半天,最后找一个老哥帮我看看才发现原因。
总结一下:
encode() 用来将字符串转化为二级制格式的数据,decode() 将二进制的数据转化为字符串
base64图片数据转 opencv数据
方式一:
import cv2
import numpy as np
import base64
base64Data = "base64图片数据”
imgData = base64.b64decode(base64Data)
img_arr = np.frombuffer(imgData,np.uint8)
img = cv2.imdecode(img_arr,cv2.COLOR_RGB2BGR)
方式二
import cv2
import numpy as np
import base64
from PIL import Image
import io
base64Data = "base64图片数据”
imgData = base64.b64decode(base64Data)
image = Image.open(io.BytesIO(imgData))
# image.show()
img = cv2.cvtColor(np.asarray(image), cv2.COLOR_RGB2BGR)
base64 转存图片
import base64
base64Data = "base64图片数据”
with open("img.jpg","wb") as f:
f.write(base64.b64dncode(base64Data))
图片转base64
import base64
base64Data = ""
with open(r"filePath","rb") as f:
s = base64.b64encode(f.read())
base64Data = "data:image/png;base64," + s