python 字节转换成图像

Python使用Base64进行字节与图像转换
博客介绍了使用Python将字节转换成图像的方法,借助Base64实现转换。具体为用base64.b64encode()将图片转成字节,用base64.b64decode()将字节转成图片,还给出图片字节串及示例代码。

python 字节转换成图像

使用base64

1.图片转成字节使用:  base64.b64encode()

2.字节转成图片: base64.b64decode()

 

图片字节串:

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

 

示例代码: 字节解码成图片

res为图片字节串

from PIL import Image
import base64
img = base64.b64decode(res)

file = open('test.jpg','wb')
file.write(img)
file.close()

 

转载于:https://www.cnblogs.com/yhleng/p/9555871.html

Python中,将字节换为图像文件的过程涉及使用图像处理库读取二进制数据并将其解析为图像对象。这一过程可以借助 `Pillow` 库(PIL 的一个分支)实现。以下是一个完整的示例,展示如何将字节换为图像文件。 ### 从网络请求获取字节流并保存为图像 ```python import urllib3 from PIL import Image from io import BytesIO import os # 创建 HTTP 请求管理器 http = urllib3.PoolManager() # 发起 GET 请求获取图片字节流 response = http.request('GET', 'https://f.hiphotos.baidu.com/image/pic/item/8d5494eef01f3a29f863534d9725bc315d607c8e.jpg') result = response.data # 获取响应中的字节流数据[^1] # 将字节流加载为图像对象 bytes_stream = BytesIO(result) roiimg = Image.open(bytes_stream) # 保存图像为 PNG 格式 imgByteArr = BytesIO() roiimg.save(imgByteArr, format='PNG') # 保存到字节流中[^1] imgByteArr = imgByteArr.getvalue() # 获取字节流内容[^1] # 创建目录并保存图像文件 os.makedirs('baiduimg', exist_ok=True) img_name = '1.png' with open(os.path.join('baiduimg', img_name), 'wb') as f: f.write(imgByteArr) # 将字节流写入文件[^2] ``` ### 说明: - **字节流的来源**:可以通过网络请求、本地文件或内存中的二进制数据获取。 - **图像处理库**:`Pillow` 是 Python 中广泛使用的图像处理库,支持多种图像格式和操作。 - **字节流与图像对象之间的换**:使用 `BytesIO` 可以将字节流封装为类文件对象,从而被 `Image.open()` 读取。 - **保存图像**:通过 `Image.save()` 方法可将图像保存为指定格式(如 PNG 或 JPEG),也可以再次序列化为字节流。 - **写入文件**:最终使用 `open(..., 'wb')` 和 `write()` 方法将字节流写入图像文件。 ### 支持的功能扩展: - **支持中文路径**:确保使用 UTF-8 编码的字符串作为文件路径。 - **动态调整图像大小**:可以在保存前调用 `resize()` 方法。 - **透明背景支持**:若原始图像是 PNG 格式且包含透明通道,不会丢失该特性。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值