np数组与base64互转

1 两种pic加载方式转换base64

# 一个正确的写法

trans_img = base64.b64encode(open(r'./123456.png', 'rb').read())

print(type(trans_img))
print(trans_img)

>>> <class 'bytes'>
>>> b'iVBORw0KGgo ...... jwv8YQUAAAAJcEhZcwAAFiUA'

# 一个错误的写法

img = cv2.imread("./data/moremoremore/123456.png")
trans_img = base64.b64encode(img).decode()

print(type(trans_img))
print(trans_img)
print('*'*20)

>>> r6+vr6+vr6+vr6+vr6+vr6+vr6+ ..... r6+vr6+vr6+vr6+vr6+vr6+vr6+
>>> ********************

2 np数组与base64互转

代码来源:http://t.csdn.cn/C9Pxg

import cv2
import base64
import numpy as np

def np2base64(npimg):
    img_str = cv2.imencode('.jpg', npimg)[1].tostring()  # 将图片编码成流数据,放到内存缓存中,然后转化成string格式
    b64_code = base64.b64encode(img_str)
    data = str(b64_code, 'utf-8')
    return data

def base64ToNp(image_base64):
    decodeImg = base64.b64decode(image_base64)
    basenp = np.frombuffer(decodeImg, dtype=np.uint8)
    frame = cv2.imdecode(basenp, cv2.IMREAD_COLOR)
    return frame

npimg = cv2.imread("3draw.jpg")
image_base64 = np2base64(npimg)
img = base64ToNp(image_base64)

cv2.imwrite("img.jpg", img)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值