ó
î Xc           @   s¥   d  d l  Z  d  d l Z d  d l m Z d d d „  ƒ  YZ d „  Z d „  Z d „  Z d „  Z d	 „  Z	 d
 d „ Z
 d
 d „ Z d d „ Z d
 d „ Z d „  Z d S(   iÿÿÿÿN(   t
   ImageColort   ImagePalettec           B   sJ   e  Z d  Z d d d d „ Z d „  Z d „  Z e Z d „  Z d „  Z	 RS(	   s'   Color palette for palette mapped imagest   RGBi    c         C   s®   | |  _  d  |  _ | p4 t t d ƒ ƒ t |  j  ƒ |  _ i  |  _ d  |  _ | d k rz t |  j  ƒ d t |  j ƒ k s› | d k rª | t |  j ƒ k rª t	 d ƒ ‚ n  d  S(   Ni   i    s   wrong palette size(
   t   modet   Nonet   rawmodet   listt   ranget   lent   palettet   colorst   dirtyt
   ValueError(   t   selfR   R	   t   size(    (    s4   /usr/lib/python2.7/dist-packages/PIL/ImagePalette.pyt   __init__   s    		(		.!c         C   s0   |  j  r |  j  |  j f S|  j d |  j ƒ  f S(   s¥   
        Get palette contents in format suitable # for the low-level
        ``im.putpalette`` primitive.

        .. warning:: This method is experimental.
        s   ;L(   R   R	   R   t   tobytes(   R   (    (    s4   /usr/lib/python2.7/dist-packages/PIL/ImagePalette.pyt   getdata%   s    	c         C   si   |  j  r t d ƒ ‚ n  t |  j t ƒ r1 |  j St j d |  j ƒ } t | d ƒ r_ | j ƒ  S| j ƒ  S(   sU   Convert palette to bytes.

        .. warning:: This method is experimental.
        s!   palette contains raw palette datat   BR   (	   R   R   t
   isinstanceR	   t   bytest   arrayt   hasattrR   t   tostring(   R   t   arr(    (    s4   /usr/lib/python2.7/dist-packages/PIL/ImagePalette.pyR   0   s    	
c         C   s  |  j  r t d ƒ ‚ n  t | t ƒ ry |  j | SWqt k
 rÿ t |  j t ƒ r€ g  |  j D] } t | ƒ ^ qb |  _ n  t	 |  j ƒ } | d k rª t d ƒ ‚ n  | |  j | <| d |  j | <| d |  j | d <| d |  j | d <d |  _
 | SXn t d | ƒ ‚ d	 S(
   sg   Given an rgb tuple, allocate palette entry.

        .. warning:: This method is experimental.
        s!   palette contains raw palette datai   s$   cannot allocate more than 256 colorsi    i   i   i   s   unknown color specifier: %rN(   R   R   R   t   tupleR
   t   KeyErrorR	   R   t   intR   R   (   R   t   colort   xt   index(    (    s4   /usr/lib/python2.7/dist-packages/PIL/ImagePalette.pyt   getcolorB   s$    	(	c         C   s  |  j  r t d ƒ ‚ n  t | t ƒ r9 t | d ƒ } n  | j d ƒ | j d |  j ƒ x§ t d ƒ D]™ } | j d | ƒ xr t | t |  j ƒ | d t |  j ƒ ƒ D]C } y | j d |  j	 | ƒ Wq¬ t
 k
 rî | j d	 ƒ q¬ Xq¬ W| j d
 ƒ qg W| j ƒ  d S(   sV   Save palette to text file.

        .. warning:: This method is experimental.
        s!   palette contains raw palette datat   ws
   # Palette
s   # Mode: %s
i   s   %di   s    %ds    0s   
N(   R   R   R   t   strt   opent   writeR   R   R   R	   t
   IndexErrort   close(   R   t   fpt   it   j(    (    s4   /usr/lib/python2.7/dist-packages/PIL/ImagePalette.pyt   save\   s    	4N(
   t   __name__t
   __module__t   __doc__R   R   R   R   R   R   R)   (    (    (    s4   /usr/lib/python2.7/dist-packages/PIL/ImagePalette.pyR      s   
			c         C   s(   t  ƒ  } |  | _ | | _ d | _ | S(   Ni   (   R   R   R	   R   (   R   t   dataR	   (    (    s4   /usr/lib/python2.7/dist-packages/PIL/ImagePalette.pyt   rawu   s
    				c         C   s#   t  j d t d d ƒt |  | ƒ S(   NsH   _make_linear_lut() is deprecated. Please call make_linear_lut() instead.t
   stackleveli   (   t   warningst   warnt   DeprecationWarningt   make_linear_lut(   t   blackt   white(    (    s4   /usr/lib/python2.7/dist-packages/PIL/ImagePalette.pyt   _make_linear_lut€   s
    c         C   s    t  j d t d d ƒt |  ƒ S(   NsF   _make_gamma_lut() is deprecated. Please call make_gamma_lut() instead.R/   i   (   R0   R1   R2   t   make_gamma_lut(   t   exp(    (    s4   /usr/lib/python2.7/dist-packages/PIL/ImagePalette.pyt   _make_gamma_lutŠ   s
    c         C   sK   g  } |  d k rA x2 t  d ƒ D] } | j | | d ƒ q Wn t ‚ | S(   Ni    i   iÿ   (   R   t   appendt   NotImplementedError(   R4   R5   t   lutR'   (    (    s4   /usr/lib/python2.7/dist-packages/PIL/ImagePalette.pyR3   ”   s    c         C   sD   g  } x7 t  d ƒ D]) } | j t | d |  d d ƒ ƒ q W| S(   Ni   g     ào@g      à?(   R   R:   R   (   R8   R<   R'   (    (    s4   /usr/lib/python2.7/dist-packages/PIL/ImagePalette.pyR7   ž   s    'R   c         C   s3   t  t d ƒ ƒ } | j ƒ  t |  | t |  ƒ ƒ S(   Ni   (   R   R   t   reverseR   R   (   R   R	   (    (    s4   /usr/lib/python2.7/dist-packages/PIL/ImagePalette.pyt   negative¥   s    
c         C   sZ   d d l  m } g  } x4 t d t |  ƒ ƒ D] } | j | d d ƒ ƒ q- Wt |  | ƒ S(   Niÿÿÿÿ(   t   randinti   i    iÿ   (   t   randomR?   R   R   R:   R   (   R   R?   R	   R'   (    (    s4   /usr/lib/python2.7/dist-packages/PIL/ImagePalette.pyR@   «   s
    s   #fff0c0c         C   sZ   t  j |  ƒ \ } } } t d | ƒ } t d | ƒ } t d | ƒ } t d | | | ƒ S(   Ni    R   (   R    t   getrgbR3   R   (   R5   t   rt   gt   b(    (    s4   /usr/lib/python2.7/dist-packages/PIL/ImagePalette.pyt   sepia³   s
    c         C   s#   t  |  t t d ƒ ƒ t |  ƒ ƒ S(   Ni   (   R   R   R   R   (   R   (    (    s4   /usr/lib/python2.7/dist-packages/PIL/ImagePalette.pyt   wedge»   s    c         C   sa  t  |  d ƒ } d  } | st y< d d l m } | j d ƒ | j | ƒ } | j ƒ  } Wqt t t f k
 rp qt Xn  | sÓ y< d d l m } | j d ƒ | j | ƒ } | j ƒ  } WqÓ t t f k
 rÏ qÓ Xn  | sHy< d d l m	 } | j d ƒ | j	 | ƒ } | j ƒ  } WqHt t f k
 rDd d  l
 } | j ƒ  qHXn  | s]t d ƒ ‚ n  | S(   Nt   rbiÿÿÿÿ(   t   GimpPaletteFilei    (   t   GimpGradientFile(   t   PaletteFiles   cannot load palette(   R"   R   t   PILRH   t   seekt
   getpalettet   SyntaxErrorR   RI   RJ   t	   tracebackt	   print_exct   IOError(   t   filenameR&   R<   RH   t   pRI   RJ   RO   (    (    s4   /usr/lib/python2.7/dist-packages/PIL/ImagePalette.pyt   load¿   s>    
(    (   R   R0   RK   R    R   R.   R6   R9   R3   R7   R>   R@   RE   RF   RT   (    (    (    s4   /usr/lib/python2.7/dist-packages/PIL/ImagePalette.pyt   <module>   s   ]		
	
	
	