ó
È4ec           @  sè   d  d l  m Z d  d l Z d  d l Z d d l m Z m Z d d l m Z m	 Z
 m Z m Z d Z i d d 6d d	 6Z e d
 ƒ d Z d „  Z d „  Z d e j f d „  ƒ  YZ e j e j e ƒ e j e j d ƒ d „  Z d S(   iÿÿÿÿ(   t   print_functionNi   (   t   Imaget	   ImageFile(   t   i8t   i16bet   i32bet   o8s   0.3t   rawt   jpegi   i    i   c         C  s   t  t |  d ƒ S(   Niüÿÿÿ(   t   i32t   PAD(   t   c(    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/IptcImagePlugin.pyt   i'   s    c         C  s6   x( |  D]  } t  d t | ƒ d d ƒq Wt  ƒ  d  S(   Ns   %02xt   endt    (   t   printR   (   R   R   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/IptcImagePlugin.pyt   dump+   s    t   IptcImageFilec           B  s8   e  Z d  Z d Z d „  Z d „  Z d „  Z d „  Z RS(   t   IPTCs   IPTC/NAAc         C  s   t  |  j | ƒ S(   N(   R   t   info(   t   selft   key(    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/IptcImagePlugin.pyt   getint;   s    c         C  s  |  j  j d ƒ } t | ƒ s" d St | d ƒ t | d ƒ f } t | d ƒ d k sx | d d k  sx | d d k r‡ t d ƒ ‚ n  t | d ƒ } | d	 k r² t d
 ƒ ‚ nP | d k rÇ d } n; | d k rò t |  j  j | d ƒ ƒ } n t | d ƒ } | | f S(   Ni   i    i   i   i   i	   s   invalid IPTC/NAA filei   i„   s%   illegal field length in IPTC/NAA filei€   (   Ni    (	   t   fpt   readt   lent   NoneR   t   SyntaxErrort   IOErrorR   t   i16(   R   t   st   tagt   size(    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/IptcImagePlugin.pyt   field>   s     6	c   	      C  s0  xÉ t  rË |  j j ƒ  } |  j ƒ  \ } } | s= | d k rA Pn  | r\ |  j j | ƒ } n d  } | |  j k r» t |  j | t ƒ rž |  j | j	 | ƒ qÈ |  j | | g |  j | <q | |  j | <q Wt
 |  j d d ƒ } t
 |  j d d ƒ } d |  j k r't
 |  j d d ƒ d } n d } | d k rL| rLd |  _ nD | d k rn| rnd	 | |  _ n" | d
 k r| rd | |  _ n  |  j d ƒ |  j d ƒ f |  _ y t |  j d ƒ } Wn t k
 rçt d ƒ ‚ n X| d k r,d | | f d d |  j d |  j d f f g |  _ n  d  S(   Ni   i
   i   i<   i    i   iA   t   Lt   RGBi   t   CMYKi   i   ix   s   Unknown IPTC image compressiont   iptc(   i   i
   (   i   i<   (   i   i<   (   i   iA   (   i   iA   (   i   i   (   i   i   (   i   ix   (   i   i
   (   t   TrueR   t   tellR!   R   R   R   t
   isinstancet   listt   appendR   t   modeR   t   _sizet   COMPRESSIONt   KeyErrorR   R    t   tile(	   R   t   offsetR   R    t   tagdatat   layerst	   componentt   idt   compression(    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/IptcImagePlugin.pyt   _openX   s>    	!c         C  sœ  t  |  j ƒ d k s, |  j d d d k r< t j j |  ƒ S|  j d \ } } } | \ } } |  j j | ƒ t j d t ƒ \ } } t	 j
 | ƒ } | d k r¸ | j d |  j ƒ n  x t r;|  j ƒ  \ } }	 | d
 k rã Pn  xR |	 d k r7|  j j t |	 d	 ƒ ƒ }
 |
 sPn  | j |
 ƒ |	 t  |
 ƒ 8}	 qæ Wq» W| j ƒ  z) t j | ƒ } | j ƒ  | j |  _ Wd  y t	 j | ƒ Wn t k
 r–n XXd  S(   Ni   i    R%   t   textR   s   P5
%d %d
255
i   i
   i    (   i   i
   (   R   R/   R   t   loadR   t   seekt   tempfilet   mkstempt   Falset   ost   fdopent   writeR    R&   R!   R   t   mint   closeR   t   opent   imt   unlinkt   OSError(   R   t   typeR/   t   boxt   encodingR0   t   o_fdt   outfilet   oR    R   t   _im(    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/IptcImagePlugin.pyR8   ‰   s8    ,	

(   t   __name__t
   __module__t   formatt   format_descriptionR   R!   R6   R8   (    (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/IptcImagePlugin.pyR   6   s   			1s   .iimc         C  sE  d d l  m } m } d d l } d } t |  t ƒ r> |  j St |  | j ƒ r} |  j j	 d ƒ } | rÃ | j	 d ƒ } qÃ nF t |  | j
 ƒ rÃ y |  j j | j } WqÃ t t f k
 r¿ qÃ Xn  | d k rÓ d Sd t f d „  ƒ  Y} | ƒ  }  t |  _ i  |  _ | j | ƒ |  _ y |  j ƒ  Wn t t f k
 r=n X|  j S(	   sÜ   
    Get IPTC information from TIFF, JPEG, or IPTC file.

    :param im: An image containing IPTC data.
    :returns: A dictionary containing IPTC information, or None if
        no IPTC information block was found.
    i   (   t   TiffImagePlugint   JpegImagePluginiÿÿÿÿNt	   photoshopi  t	   FakeImagec           B  s   e  Z RS(    (   RM   RN   (    (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/IptcImagePlugin.pyRT   Ú   s   (   t    RQ   RR   t   ioR   R(   R   R   t   JpegImageFilet   gett   TiffImageFileR   R1   t   IPTC_NAA_CHUNKt   AttributeErrorR.   t   objectt	   __class__t   BytesIOR   R6   t
   IndexError(   RC   RQ   RR   RV   t   dataRS   RT   (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/IptcImagePlugin.pyt   getiptcinfo·   s4    			(   t
   __future__R    R=   R:   RU   R   R   t   _binaryR   R   R   R   R	   R   t   __version__R-   R
   R   R   R   t   register_openRO   t   register_extensionRa   (    (    (    s=   /usr/local/lib/python2.7/dist-packages/PIL/IptcImagePlugin.pyt   <module>   s   "		|