Source code for pyowm.commons.image
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from pyowm.commons.databoxes import ImageType
from pyowm.commons.enums import ImageTypeEnum
[docs]
class Image:
"""
Wrapper class for a generic image
:param data: raw image data
:type data: bytes
:param image_type: the type of the image, if known
:type image_type: `pyowm.commons.databoxes.ImageType` or `None`
"""
def __init__(self, data, image_type=None):
self.data = data
if image_type is not None:
assert isinstance(image_type, ImageType)
self.image_type = image_type
[docs]
def persist(self, path_to_file):
"""
Saves the image to disk on a file
:param path_to_file: path to the target file
:type path_to_file: str
:return: `None`
"""
with open(path_to_file, 'wb') as f:
f.write(self.data)
[docs]
@classmethod
def load(cls, path_to_file):
"""
Loads the image data from a file on disk and tries to guess the image MIME type
:param path_to_file: path to the source file
:type path_to_file: str
:return: a `pyowm.image.Image` instance
"""
import mimetypes
mimetypes.init()
mime = mimetypes.guess_type('file://%s' % path_to_file)[0]
img_type = ImageTypeEnum.lookup_by_mime_type(mime)
with open(path_to_file, 'rb') as f:
data = f.read()
return Image(data, image_type=img_type)
def __repr__(self):
return "<%s.%s - type=%s>" % (__name__, self.__class__.__name__, str(self.image_type))