base64转图片
时间: 2023-07-07 11:16:06 浏览: 49
可以使用以下 Python 代码将 base64 编码的字符串转换为图片:
```python
import base64
from PIL import Image
from io import BytesIO
# base64 编码的字符串
base64_str = "data:image/png;base64,iVBORw0KG...QmCC"
# 去除前缀
img_data = base64_str.replace("data:image/png;base64,", "")
# 解码 base64 字符串
img_bytes = base64.b64decode(img_data)
# 将字节流转换为图片
img = Image.open(BytesIO(img_bytes))
# 显示图片
img.show()
```
其中 `base64_str` 是 base64 编码的字符串,需要将其解码并转换为图片。使用 Python 的 `base64` 模块可以将 base64 编码的字符串解码为字节流,然后使用 PIL 库的 `Image.open()` 方法将字节流转换为图片对象。最后可以使用 `img.show()` 显示图片。
相关问题
base64 转图片
Base64是一种用于将二进制数据编码成ASCII字符的编码方式。它常被用于在文本协议中传输二进制数据,例如在HTML中嵌入图片或者在网络请求中传输图片数据。将Base64编码的字符串转换为图片的过程如下:
1. 首先,将Base64编码的字符串解码为二进制数据。
2. 然后,根据图片格式(如JPEG、PNG等),将解码后的二进制数据保存为对应格式的图片文件。
以下是一个示例代码,使用Python的base64和PIL库来实现Base64转图片的功能:
```python
import base64
from PIL import Image
from io import BytesIO
def base64_to_image(base64_string, output_path):
# 解码Base64字符串为二进制数据
image_data = base64.b64decode(base64_string)
# 创建Image对象
image = Image.open(BytesIO(image_data))
# 保存为图片文件
image.save(output_path)
# 示例用法
base64_string = "..." # 这里替换为你的Base64字符串
output_path = "output.jpg" # 输出图片路径
base64_to_image(base64_string, output_path)
```
请注意,示例代码中使用了Python的base64和PIL库来进行Base64解码和图片处理。你可以根据自己的需求选择其他编程语言和相应的库来实现相同的功能。
base64转图片脚本
base64转图片的脚本可以根据不同的需求选择不同的实现方式。下面是两种常见的实现方式:
方式一,将图片先通过cv2.imdecode解码,再通过cv2.cvtColor进行颜色空间的转换:
```python
import cv2
import base64
import numpy as np
def base64_to_img(base64_str):
byte_data = base64.b64decode(base64_str) # 将base64转换为二进制
encode_image = np.asarray(bytearray(byte_data), dtype="uint8") # 二进制转换为一维数组
img_array = cv2.imdecode(encode_image, cv2.IMREAD_COLOR) # 用cv2解码为三通道矩阵
img_array = cv2.cvtColor(img_array, cv2.COLOR_BGR2RGB) # BGR2RGB
return img_array
```
方式二,先将图片经过cv2.imencode(".jpg", img_array)进行jpg格式编码,再进行base64编码:
```python
import cv2
import base64
import numpy as np
def base64_to_img(base64_str):
byte_data = base64.b64decode(base64_str) # 将base64转换为二进制
encode_image = np.asarray(bytearray(byte_data), dtype="uint8") # 二进制转换为一维数组
img_array = cv2.imdecode(encode_image, cv2.IMREAD_COLOR) # 用cv2解码为三通道矩阵
img_array = cv2.cvtColor(img_array, cv2.COLOR_BGR2RGB) # BGR2RGB
return img_array
```
以上两种方式都可以将base64编码的图片转换为RGB格式的numpy矩阵。