打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Python使用Base64进行图片编码和解码
userphoto

2023.10.21 浙江

关注

前言

图片处理是 Python 编程中需要掌握的基本技能,而 python 中也内置了相应的库,它就是 base64。本篇就来分享如何利用 base64 库来将图片与字符串进行互相转换。

图片转成字符串

以我网站的 logo 图片为例

base64

import base64# 以rb方式读取图片文件,获得原始字节码,b是二进制的意思with open('logo.jpg', 'rb') as jpg_file: byte_content = jpg_file.read()if byte_content: # 编码成base64字节码 base64_bytes = base64.b64encode(byte_content) # 转换成字符串 base64_string = base64_bytes.decode('utf8') print(base64_string)

程序执行结果是这样的

base64

如果需要将字符串通过 json 的方式进行传输的话,就可以结合 json 库一起操作了

字符串转换成图片

这种情况,图片数据一般都是 json 的方式传输,在接收端看到的就是编码后的字符串,拿到字符串后,就可以使用 base64 提供的解码方法解码并保存到本地,为了示例的完整性,这里使用2个外部工具,一个是在线的图片转换工具,网站地址是
https://www.base64-image.de/,上传一张图片得到
base64 编码后的字符串;另一个工具是 postman,通过它模拟一个客户端的 POST 请求,而在服务器,我们利用 flask 框架实现一个后台服务,处理这个 http 请求

base64

在上图中,图片的数据是从标注的位置开始的,把这串字符拷贝下来,填充到 postman 中,如下所示

base64

这是一个 POST 请求,body 中是一个 json 数据,格式是这样的

{'img''图片base64编码字符串'}

然后在请求的 Header 部分,加上 Content-Type 字段,它的值为 application/json,这样,客户端的部分就准备好了

base64

接下来,编写服务器端的代码,使用 flask 这个轻量级的 web 框架

from flask import Flask, request, jsonifyimport base64app = Flask(__name__)@app.route('/', methods=['POST'])def get_image(): # 取出字符串 image_base64_string = request.get_json()['img'] print(image_base64_string) # 解码字符串 image_data = base64.b64decode(image_base64_string) with open('test.jpg', 'wb') as jpg_file: jpg_file.write(image_data) return jsonify( { 'code': 200 } )if __name__ == '__main__': app.run(port=3000, debug=True)

执行上述代码,启动 flask 服务

base64

然后来到 postman,发送刚才准备好的 http 请求,可以看到,服务器端返回了 json 数据

base64

而此时,服务器端也成功地接收到了图片字符串并解码存储到了本地硬盘

base64

参考资料
https://en.wikipedia.org/wiki/Base64

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Java对网络图片/本地图片转换成Base64编码和解码
(转) base64转图片
Python JSON 
编码的秘密
详解Python字符串编码格式
字符编码
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服