from PIL.Image import open as PILopen from io import BytesIO import time class Image: @classmethod def open(cls, *args, **kwargs): img = PILopen(*args, **kwargs) return cls(img) def __init__(self, img): self._img = img def prepare_sending(self): buffer = BytesIO() self.save(buffer, "JPEG") headers = { 'X-Timestamp': time.time(), 'Content-Length': len(buffer.getvalue()), 'Content-Type': "image/jpeg" } return buffer.getvalue(), headers def __getattr__(self, key): if key == '_img': raise AttributeError() return getattr(self._img, key)