fastapi传输图片给客户端

前提:后端,python,我有一个frame,想传递给前端进行展示。

  1. 将图片保存到本地,传输地址给客户端
cv2.imwrite(result_path, frame)
  1. 图片进行base64编码后传输
base64.b64encode(frame)

但是发现前端接收到后无法显示图片。
把base64转存后,复制到base64在线转化为图片网站上测试了一下,也是不行。

  1. 转为base64
    对一张图片进行编码,下面是测试代码:
import base64
with open("E:/1.jpg", "rb") as f:
	# b64encode是编码,b64decode是解码
	base64_data = base64.b64encode(f.read())
	# base64.b64decode(base64data)
	base64_data_str = str(base64_data, encoding="utf-8")
	html_str = "data:image/jpg;base64," + base64_data_str
	print(html_str)
	return html_str

测试可行后,代入真实数据:

success, buffer = cv2.imencode('.jpg', frame)
if not success:
	return None
base64_data = base64.b64encode(buffer)
base64_data_str = str(base64_data, encoding="utf-8")
html_str = "data:image/jpg;base64," + base64_data_str
return html_str
posted @ 2023-09-12 22:11  jijfurhg  阅读(708)  评论(0)    收藏  举报