python cv2转base64 PIL.Image 转base64

import base64
from PIL import Image
from io import BytesIO
import cv2 
import numpy as np
 
# PIL转base64
def pil_base64(image: Image.Image, fmt='jpeg') -> str: 
    out_buffer = BytesIO()
    image.save(out_buffer, format=fmt)
    byte_data = out_buffer.getvalue()
    base64_str = base64.b64encode(byte_data).decode('utf-8')
    return base64_str

# base64转PIL    
def base64_pil(base64_str: str) -> Image.Image:
    image = base64.b64decode(base64_str.encode('utf8'))
    image = BytesIO(image)
    image = Image.open(image).conver('RGB')
    return image

def imageToBase64(image: Image.Image, fmt='png') -> str:                                                                                                                                                          

    output_buffer = BytesIO()
    image.save(output_buffer, format=fmt)
    byte_data = output_buffer.getvalue()
    base64_str = base64.b64encode(byte_data).decode('utf-8')
    #return f'data:image/{fmt};base64,' + base64_str
    return base64_str

def base64ToImage(jpg_base64,  img_dir = "./images"):
    encoded = jpg_base64.encode('raw_unicode_escape') #str转byte
    encoded = base64.b64decode(encoded)
    timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
    # 将图片保存
    #jpgname = os.path.join(img_dir,'{}.jpg'.format(random.randint(100,100000)))
    jpgname_ = os.path.join(img_dir, '{}_{}.jpg'.format(timestamp,random.randint(100,100000)))
    open(jpgname_, 'wb').write(encoded)
        
    return jpgname_

# cv2转base64                                                                                                                                                                                                               
def cv2_base64(image):
    #base64_str = cv2.imencode('.jpg',image)[1].tostring()
    #base64_str = base64.b64encode(base64_str)
    img = cv2.imencode('.jpg', image)[1]
    base64_str = str(base64.b64encode(img))[2:-1]
    return base64_str

# base64转cv2
def base64_cv2(base64_str):
    imgString = base64.b64decode(base64_str)
    nparr = np.fromstring(imgString,np.uint8)  
    image = cv2.imdecode(nparr,cv2.IMREAD_COLOR)
    return image

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值