Python使用Base64进行图片编码和解码
liuian 2025-03-14 18:46 40 浏览
前言
图片处理是 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, jsonify
import base64
app = 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
相关推荐
- qq账号怎么改密码(qq怎么改帐号密码)
-
你可以把什么软件全关了创造一个环境这个环境的要求是网络稳定然后你点击QQ的系统设置它会有一个绿色通道直接改密只要密码知道就可以改密方法一:通过游戏修改直接在游戏登录界面点...
- 笔记本电脑配置怎么看显卡(笔记本电脑如何查看显卡配置)
-
1、首先打开控制面板,win10和win7打开控制面板的方式可能不一样,右键点击我的电脑,然后点击属性。2、在弹出的属性界面中,找到左上方的控制面板主页,然后点击它打开控制面板页面。3、打开控制面板后...
- 迅雷ios老版本安装包(迅雷ios老版本下载)
-
①可能是该版本的软件已经下架了。或者说没有服务器去支持该软件版本进行运转。②可能该软件版本过低导致的一些故障问题,使得没有多少用户愿意去下载和使用。③手机系统版本不支持用户使用软件的这类版本。因此用户...
- win7c盘哪些文件可以删(w7c盘里面有哪些文件是可以删除的)
-
windows7清理c盘隐藏文件的方法如下1、首先打开电脑,点击打开电脑桌面上的“我的电脑”。2、然后在弹出来的窗口中点击打开“本地磁盘(C)”。3、然后在弹出来的窗口中点击打开左上角组织中的“文件...
- word2016是免费的吗(word2016版什么样)
-
对啊下载,安装输入序列号才能使用区别在于特点不同,office2016采用了高端拼接的方式呈现。整体更加时尚动感,辨识度极高,保留性能的同时也兼顾了不错的规格设计。2021稳重之中带着犀利,硬朗的线条...
- 如何修改路由器(如何修改路由器密码)
-
要修改无线路由器,您需要登录到路由器的管理界面。以下是如何进行的步骤:1.打开浏览器并输入路由器的IP地址。通常默认为192.168.1.1或192.168.0.1。如果不确定,请参考路由器的用户手...
- 电脑看视频卡是什么原因(电脑看视频非常卡)
-
网速原因,网速太慢会导致电脑看视频会卡。2、看视频的时候有其他程序在运用。3、电脑垃圾太多。4、电脑中病毒了。电脑看视频太卡怎么办:1、首先要确定是不是网速的原因,如果是网速慢,那么建议看视频选择“流...
-
- 哪个笔记本品牌性价比高(那个品牌笔记本电脑性价比最高)
-
有以下几款【微软SurfacePro6】SurfacePro6定位商务办本,二合一笔记本,它有足够惊人的外观,C面材质也使它具有很高的认知度,足够的性能完全可以满足用户的日常使用。产品采用英特尔酷睿i58系列CPU,主频1.6GH...
-
2026-01-01 05:55 liuian
-
- windows许可证即将过期怎么回事
-
出现此情况的解决方法如下:1、如果在电脑出现“你的Windows许可证即将过期”窗口,然后在窗口中点击“转到设置”,2、点击完以后,需要找到安装的文件夹,需要注意的是安装的文件夹建议是C盘或者是系统盘。3、打开之后,在页面上找到一个红色按钮...
-
2026-01-01 04:55 liuian
- u盘在电脑上无法访问怎么办(为什么u盘在电脑上无法访问)
-
01U盘不被电脑识别。一般U盘打不开,很可能就是电脑系统自带的驱动的原因,我们可以开机按F8进入安全模式再退出,重启便可以了。02U盘接口供电不足,或许是USB连接的外口太多导致供电不足。我们可以使用...
- 笔记本电脑启动不起来是什么原因
-
11.检测电源线是否插好,电源线与电脑的接口是否有松动。22.检查充电器是否坏了,如果充电器坏了,那就换一个试试。33.如果不能,那就重新开机,一直按住F8键,使电脑进行最近一次的正确配置选项,再按回...
- 谷歌gmail邮箱(谷歌gmail邮箱下载)
-
吉邮Gmail中文名“吉邮”是全球最大的搜索引擎公司google推出的一款功能非常丰富的,容量达到2GB的免费电子邮箱,即E-mail……(gmail邮箱为争得竞争优势早已将邮箱扩容置2GB,但至...
- 一周热门
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)
