Python+requests之base64与image转换

做接口自动化过程, 遇到需要把image转换base64格式上传的接口,Python的bs4模块就能解决所述问题

image转换base64

# image转换成base64并加上 前缀data:image/jpeg;base64,
def image_to_base64(filename, path="E:\\script", **kwargs):
    """
    :param filename: image文件名
    :param path: image存放路径
    :param kwargs: 参数prefix(转换base64后需要加上的前缀)
    :return:
    """
    path = join(path, filename)
    # 转为二进制格式
    with open(path, "rb") as f:
        data = str(base64.b64encode(f.read()), "utf-8")
        # 转换base64后加上前缀
        if "prefix" in kwargs.keys():
            data = kwargs["prefix"] + data
            # base64_data = bytes(('data: image/jpeg;base64,%s' % str(base64.b64encode(f.read()), "utf-8")), "utf-8")
        # 转换为bytes对象
        base64_data = bytes(data, "utf-8")
        print("Succeed: %s >> 图片转换成base64" % path)
        return base64_data


if __name__ == "__main__":
    image_to_base64(
        filename="log.png", path="E:\\script\\up", prefix='data: image/jpeg;base64,')

base64转换image

# base64转换成image
def base64_to_image(filename, data, path="E:\\script"):
    """
    :param filename: 转换后的image名称
    :param data: base64
    :param path: 转换后的image文件存在路径
    :return:
    """
    path = join(path, filename)
    fh = open(path, "wb")
    fh.write(base64.b64decode(data))                # 转换为image
    fh.close()
    print("Succeed: base64转换成图片 >> %s" % path)


if __name__ == "__main__":
    base64_to_image(filename="test.png", path="E:\\script\\up", data=image_to_base64(
        filename="log.png", path="E:\\script\\up"))

 

你可能感兴趣的:(Requests接口自动化)