【发布时间】:2021-03-22 00:53:39
【问题描述】:
我从前端接收到一个base64格式的图像到JSON文件中,需要用OpenCV拍摄图像和解码,JSON有:
{
'photo': "b'/9j/4AAQSkZJR...(continue)"
}
代码是
obj = json.loads(json.dumps(event))
obj = obj['foto']
obj = bytes(obj,'utf-8')
obj_d = base64.decodebytes(obj)
print(type(obj_d))
img_buffer = np.frombuffer(obj_d, dtype=np.uint8)
print(img_buffer)
img = cv2.imdecode(img_buffer, flags=cv2.IMREAD_COLOR)
print(img.shape)
收到的错误是,AttributeError: 'NoneType' object has no attribute 'shape'。
当我在 Python 中使用 base64 编码和解码图像时,我没有问题。
【问题讨论】:
-
人们需要使用调试器,它有很大帮助。 Pycharm / Vscode 是免费的,并且有很棒的调试器。
-
你可能需要
eval()这个字符串,因为它以b'...'开头但你知道安全性 -
在 JSON 中您有“照片”,但在您的代码中您尝试阅读
obj['foto']。这可能是问题所在。 -
JSON 有 obj['foto'],我写了一个以前的版本,错误是 b'...',删除这个并且工作,谢谢你帮助