python图片二进制流互转

python图片二进制流互转

Fre_soe 169 2022-09-21

直接贴代码

from PIL import Image
import io
import os


def create_pic(content):
    """
    二进制流Byte字节流转图片
    :param content: 二进制流
    :return:
    """
    byte_stream = io.BytesIO(content)  # 请求数据转化字节流

    roiImg = Image.open(byte_stream)  # Image打开二进制流Byte字节流数据

    imgByteArr = io.BytesIO()  # 创建一个空的Bytes对象

    roiImg.save(imgByteArr, format='PNG')  # PNG就是图片格式

    imgByteArr = imgByteArr.getvalue()  # 保存的二进制流

    path = 'C:/Users/JK/Documents/Projects/SKlearn/TEST'

    name = 'test.jpg'

    # 生成文件目录
    if not os.path.exists(path):
        os.makedirs(path)

    # 创建图片
    with open(os.path.join(path, name), "wb+") as f:
        f.write(imgByteArr)


def create_data(img):
    """
    图片转二进制流
    :param img: 图片地址
    :return: 二进制流
    """
    with open(img, "rb") as f:
        byte_data = f.read()
    return byte_data


if __name__ == '__main__':
    img = 'C:/Users/JK/Pictures/恒能报告/hy_pic.jpg'
    byte_data = create_data(img)
    create_pic(byte_data)