
hR\                 @   s   d  d l  Z  d d l m Z m Z d Z d Z i d d 6d d	 6d
 d 6d d 6d 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 d d g  d S)    N   )Image	ImageFilez0.2s    	
1s   P4Ls   P5RGBs   P6ZCMYKs   P0CMYKPs   PyPRGBAs   PyRGBAs   PyCMYKc             C   s$   |  d d  d k o# |  d d k S)Nr   r      Ps   0456y )prefixr   r   G/var/www/dbchiro/venv/lib/python3.4/site-packages/PIL/PpmImagePlugin.py_accept+   s    r   c               @   s7   e  Z d  Z d Z d Z d d d  Z d d   Z d S)	PpmImageFileZPPMzPbmplus image    c             C   sz   xs |  j  j d  } | s( | t k r, Pn  | d k rG t d   n  | | } t |  d k r t d   q q W| S)Nr   s   yz"Expected ASCII value, found binary	   zExpected int, got > 9 digits)fpreadb_whitespace
ValueErrorlen)selfscr   r   r   _token7   s    
zPpmImageFile._tokenc             C   s  |  j  j d  } | d k r- t d   n  t |  j |  } | d k r^ d |  _ d } n | |  _ } x7t d  D])} xg xA |  j  j d  } | t k r Pn  | d k r t d   q q W| d	 k r Pn  |  j  j	   } q Wt
 |  j |   } | d
 k r| } qx | d k r7| } | d k rPqqx | d k rx | d k r| d k snt d |   n  | d k  rd |  _ d } qd |  _ d } qqx qx W| | f |  _ d d
 d
 | | f |  j  j   | d
 d f f g |  _ d  S)Nr   r
   znot a PPM filer   z1;I   r   z(File does not extend beyond magic number   #r         r   zToo many colors for band: %s   IzI;16BzI;32Brawi   )r   r   SyntaxErrorMODESr   moderanger   r   readlineintsizetellZtile)r   r   r$   rawmodeixZxsizeZysizer   r   r   _openC   sP    						zPpmImageFile._openN)__name__
__module____qualname__formatZformat_descriptionr   r,   r   r   r   r   r   2   s   r   c          	   C   s  |  j  d k r d \ } } n |  j  d k r< d \ } } n |  j  d k r |  j   d d k  rp d \ } } q d \ } } nO |  j  d k r d \ } } n1 |  j  d k r d \ } } n t d |  j    | j | d |  j j d   | d k r| j d  n  | d k rn| d k r3| j d  qn| d
 k rO| j d  qn| d k rn| j d  qnn  t j |  | d d |  j d | d d f f g  d  S)Nr   1;I   P4r      P5r    r   r   r   I;16BI;32Br      P6r	   zcannot write mode %s as PPMz
%d %d
asciis   255
s   65535
s   2147483648
r!   r   )r1   r2   )r   r3   i   )r4   r3   )r5   r3   )r   r6   )r   r6   )r   r   )r$   Z
getextremaIOErrorwriter(   encoder   _save)Zimr   filenamer*   headr   r   r   r;   y   s0    !r;   z.pbmz.pgmz.ppm)string r   r   __version__r   r#   r   r   r;   Zregister_openr0   Zregister_saveZregister_extensionsr   r   r   r   <module>   s"   
G"