import base64 import io import numpy as np import PIL.Image def img_b64_to_arr(img_b64): f = io.BytesIO() f.write(base64.b64decode(img_b64)) img_arr = np.array(PIL.Image.open(f)) return img_arr def img_arr_to_b64(img_arr): img_pil = PIL.Image.fromarray(img_arr) f = io.BytesIO() img_pil.save(f, format='PNG') img_bin = f.getvalue() if hasattr(base64, 'encodebytes'): img_b64 = base64.encodebytes(img_bin) else: img_b64 = base64.encodestring(img_bin) return img_b64 def img_data_to_png_data(img_data): with io.BytesIO() as f: f.write(img_data) img = PIL.Image.open(f) with io.BytesIO() as f: img.save(f, 'PNG') f.seek(0) return f.read()