方法1
编码
import base64
from io import BytesIO
from PIL import Image
def loadimg(imgpath):
"""
加载图片
"""
return Image.open(imgpath)
def image_to_base64(imgpath):
"""
将打开后的图片转换为base64格式输出
"""
image = loadimg(imgpath)
buff = BytesIO()
image.save(buff,format="JPEG")
imagedata = base64.b64encode(buff.getvalue())
imgbase64= imagedata.decode()
return imgbase64
解码
def base64_to_image(imagebase64):
"""
输入base64,输出图片
"""
try:
imgbase64= base64.b64decode(imagebase64)
image = Image.open(BytesIO(imgbase64))
return image
except:
print("输入图片必须是BASE64格式...")
方法2
编码
import base64
from io import BytesIO
from PIL import Image
def loadimg(imgpath):
"""
加载图片
"""
return Image.open(imgpath)
def image_to_base64(imgpath):
"""
将打开后的图片转换为base二进制流格式输出
"""
image = loadimg(imgpath)
buff = BytesIO()
image.save(buff,format="JPEG")
imagedata = base64.b64encode(buff.getvalue())
imagedata = imagedata.decode()
img = base64.b64decode(imagedata)
return img
解码
def base64_to_image(imagebase64):
"""
输入base二进制流图片,输出图片
"""
try:
image = Image.open(BytesIO(imagebase64))
return image
except:
print("输入图片必须是二进制流格式...")
方法3
编码
import base64
def image_to_base64(imagefile,imagetype="BASE"):
"""
输入图片文件,以base二进制流格式输出
"""
with open(imagefile, "rb") as f:
imagedata = f.read()
imagedata = base64.b64encode(imagedata)
imagedata = imagedata.decode()
image = base64.b64decode(imagedata)
return image,imagetype
解码
def base64_to_image(imagebase64):
"""
输入base二进制流图片,输出图片
"""
try:
image = Image.open(BytesIO(imagebase64))
return image
except:
print("输入图片必须是二进制流格式...")
方法4
编码
def image_to_base64(image):
"""
将图片转换为base64格式
"""
buff = BytesIO()
image.save(buff,format="JPEG")
imagedata = base64.b64encode(buff.getvalue())
imgbase64 = imagedata.decode()
return imgbase64
解码
def base64_to_image(imagebase64):
"""
输入base64图片,输出图片
"""
try:
imgbase64= base64.b64decode(imagebase64)
buf_str = BytesIO(imgbase64).getvalue()
nparr = np.fromstring(buf_str, np.uint8)
img = cv2.imdecode(nparr, 1)
return img
except:
print("输入图片必须是BASE64格式...")