Python实现图像的二进制与base64互转
时间: 2024-04-28 21:01:50 浏览: 13
使用Python实现图像的二进制与base64互转可以使用Python的base64库和Pillow库。
将图像转换为二进制:
```python
from PIL import Image
import base64
# 打开图像
with open("image.jpg", "rb") as f:
img = f.read()
# 转换为二进制
img_binary = base64.b64encode(img)
# 输出二进制
print(img_binary)
```
将二进制转换为图像:
```python
from PIL import Image
import base64
# 读取二进制
with open("image.txt", "rb") as f:
img_binary = f.read()
# 转换为图像
img_data = base64.b64decode(img_binary)
with open("image.jpg", "wb") as f:
f.write(img_data)
```
其中,第一个例子将图像文件读入,然后使用base64库的b64encode()函数将其转换为二进制数据,最后输出二进制数据。第二个例子将二进制数据读入,然后使用base64库的b64decode()函数将其转换为图像数据,最后将图像数据写入文件。
相关问题
jpeg图像压缩python base64
JPEG是一种基于有损压缩的图像格式,它可以将图像压缩至原始大小的一半或更小,同时保留图像的可接受质量。Python中有多个库可以进行JPEG图像压缩和解压缩,其中比较常用的是Pillow库和OpenCV库。
而Base64是一种编码方式,可以将任意二进制数据转换为ASCII字符串,通常用于在HTTP等协议中传递二进制数据。在Python中,可以使用base64库进行base64编码和解码。
下面是一个将JPEG图像进行压缩和Base64编码的示例代码:
``` python
from PIL import Image
import io
import base64
# 打开图片并进行压缩
img = Image.open('example.jpg')
img = img.resize((int(img.width/2), int(img.height/2)))
buffer = io.BytesIO()
img.save(buffer, format='JPEG', quality=60)
# 进行Base64编码
base64_data = base64.b64encode(buffer.getvalue()).decode()
# 输出编码后的字符串
print(base64_data)
```
如何通过解码base64字符串来获取图像的二进制数据
在Python中,可以使用base64模块的b64decode函数来解码base64字符串,然后将返回的结果作为二进制数据进行处理。例如,如果你的base64字符串是存储在变量encoded_str中的,可以使用以下代码将其解码为二进制数据:
```python
import base64
# 将base64字符串解码为二进制数据
binary_data = base64.b64decode(encoded_str)
```
解码后的二进制数据可以用于显示图像或其他操作。