cv2图片格式转base64
时间: 2023-07-27 19:05:59 浏览: 308
您可以使用以下代码将cv2图片格式转换为base64:
```python
import cv2
import base64
# 读取图片
img = cv2.imread('image.jpg')
# 将图片转换为base64字符串
retval, buffer = cv2.imencode('.jpg', img)
jpg_as_text = base64.b64encode(buffer)
```
其中,'image.jpg' 是您要转换的图片路径。转换后,`jpg_as_text` 就是该图片的base64字符串。
相关问题
base64转图片python
将base64编码转为图片的方法有很多种。比如使用cv2库或者PIL库等。其中,使用PIL库的方法如下所示:
```python
from io import BytesIO
from PIL import Image
import base64
def base64_to_image(base64_str):
# 输入为base64格式字符串,输出为PIL格式图片
byte_data = base64.b64decode(base64_str) # base64转二进制
image = Image.open(BytesIO(byte_data)) # 将二进制转为PIL格式图片
return image
```
如果你想将图片转为base64编码,可以使用以下方法:
```python
from io import BytesIO
from PIL import Image
import base64
def image_to_base64(image):
# 输入为PIL读取的图片,输出为base64格式
byte_data = BytesIO() # 创建一个字节流管道
image.save(byte_data, format="JPEG") # 将图片数据存入字节流管道
byte_data = byte_data.getvalue() # 从字节流管道中获取二进制
base64_str = base64.b64encode(byte_data).decode("ascii") # 二进制转base64
return base64_str
```
这些是将base64编码转为图片和将图片转为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矩阵。