
 X                 @   s   d  d l  m Z d  d l  m Z d  d l m Z d  d l  m Z i d d 6d d 6Z i d d 6d d	 6d d
 6Z d d   Z Gd d   d e j  Z	 d d   Z
 e j e	 j e	 e  e j e	 j e
  e j e	 j d  e j e	 j d  d S)    )Image)	ImageFile)BytesIO)_webpTZRGBZRGBAs   VP8 s   VP8Xs   VP8Lc             C   sR   |  d  d  d k } |  d d  d k } |  d d  t  k } | oQ | oQ | S)N   s   RIFF      s   WEBP   )_VP8_MODES_BY_IDENTIFIER)prefixZis_riff_file_formatZis_webp_fileZis_valid_vp8_mode r   P/home/ubuntu/projects/ifolica/lib/python3.4/site-packages/PIL/WebPImagePlugin.py_accept   s    r   c               @   s4   e  Z d  Z d Z d Z d d   Z d d   Z d S)WebPImageFileWEBPz
WebP imagec             C   s   t  j |  j j    \ } } } |  _ } } | rC | |  j d <n  | rY | |  j d <n  | | f |  _ t |  |  _ d d |  j d |  j f g |  _ d  S)Nicc_profileexifrawr   )r   r   )	r   Z
WebPDecodefpreadmodeinfosizer   Ztile)selfdatawidthheightr   r   r   r   r   _open    s    -zWebPImageFile._openc             C   s   d d l  m } | |   S)Nr   )_getexif)ZPIL.JpegImagePluginr   )r   r   r   r   r   r   -   s    zWebPImageFile._getexifN)__name__
__module____qualname__formatZformat_descriptionr   r   r   r   r   r   r      s   r   c       	   	   C   s   |  j  } |  j  t k r+ t d |   n  |  j j d d  } |  j j d d  } |  j j d d  } |  j j d d  } t j |  j   |  j d	 |  j d
 | t	 |  |  j  | |  } | d  k r t d   n  | j
 |  d  S)Nzcannot write mode %s as WEBPlosslessFqualityP   r    r   r      z1cannot write file as WEBP (encoder returned None))r   _VALID_WEBP_MODESIOErrorZencoderinfogetr   Z
WebPEncodetobytesr   floatwrite)	Zimr   filenameZ
image_moder#   r$   r   r   r   r   r   r   _save2   s&    		

		r/   z.webpz
image/webpN)ZPILr   r   ior   r   r(   r
   r   r   r/   Zregister_openr"   Zregister_saveZregister_extensionZregister_mimer   r   r   r   <module>   s"   

