python用base64库进行图片与字符串的转换

# encoding:utf-8
import matplotlib.pyplot as plt
import cv2
from io import BytesIO
import base64

# 二进制读取图片,再将图片转为 base64 类型的字符串
with open('coin.jpg', 'rb') as fin:   #第一个参数为图片全路径或相对路径
    print('二进制类型')
    image_data = fin.read()
    # 图片:二进制类型
    print(image_data)

    # 将二进制图片编码为 base64 格式
    print('二进制类型--转--bytes类型')
    base64_data_bytes = base64.b64encode(image_data)
    # 图片:bytes类型
    print(base64_data_bytes)

    # 在Python3以后,字符串和bytes类型彻底分开了。字符串是以字符为单位进行处理的,bytes类型是以字节为单位处理的。
    # 在 Python3 中,bytes和str的互相转换方式是
    # str.encode('utf-8')           bytes.decode('utf-8')

    print('bytes类型--转--str类型')
    base64_data_str= base64_data_bytes.decode()
    # 图片:str类型
    print(base64_data_str)
######################################################################
print('上面将图片转为字符串----下面再将此字符串转为图片')
print('通过打印str类型,再将其赋给一个变量,则这个变量就表示一张图片的str类型')
print('str类型表示会很长,可以用于pythonn使用PyInstalle库生成的exe文件中')
print('上面将图片转为字符串----下面再将此字符串转为图片')
######################################################################
print('str类型')
print(base64_data_str)

print('str类型--转--bytes类型')
base64_data_bytes = base64_data_str.encode('utf-8')
print(base64_data_bytes)

print('bytes类型--转--二进制类型')
image_data = base64.b64decode(base64_data_bytes)
print(image_data)

print('二进制类型--转--数组')
# 使用 matplotlib,io 库将二进制类型转为数组
img_data = plt.imread(BytesIO(image_data),"JPG")
#第一个参数目前还不清楚
# 第二个参数可以为 PNG、JPG
print(type(img_data))
print(img_data.shape)

# 使用cv2库显示图片
img_cv2 = cv2.cvtColor(img_data,cv2.COLOR_RGB2BGR)
cv2.imshow('a',img_cv2)
cv2.waitKey(0)
cv2.destroyAllWindows()
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值