3

Zt                 @   s   d dl mZmZ dZdZdddddd	dd
Zdd ZG d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 )   )Image	ImageFilez0.2s    	
1LRGBZCMYKPRGBA)s   P4s   P5s   P6s   P0CMYKs   PyPs   PyRGBAs   PyCMYKc             C   s   | dd dko| d dkS )N    r      Ps   0456y )prefixr   r   4/usr/lib/python3/dist-packages/PIL/PpmImagePlugin.py_accept)   s    r   c               @   s&   e Zd ZdZdZd	ddZdd ZdS )
PpmImageFileZPPMzPbmplus image    c             C   sR   xL| j jd}| s|tkrP |dkr.td|| }t|dkrtdqW |S )Nr      yz"Expected ASCII value, found binary	   zExpected int, got > 9 digits)fpreadb_whitespace
ValueErrorlen)selfscr   r   r   _token5   s    zPpmImageFile._tokenc             C   sJ  | j jd}|dkrtdt| j| }|dkr>d| _d}n
| | _}xtdD ]}xDx*| j jd}|tkrpP |dkrZtdqZW |d	krP | j j	 }qXW t
| j|}|d
kr|}qR|dkr|}|dkrP qR|dkrR|dkrR|dkstd| |dk r
d| _d}qRd| _d}qRW ||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%   rawmodeZixZxsizeZysizer   r   r   _openA   sP    



zPpmImageFile._openN)r   )__name__
__module____qualname__formatZformat_descriptionr   r,   r   r   r   r   r   0   s   
r   c          	   C   s(  | j dkrd\}}nx| j dkr(d\}}nd| j dkrV| j d dk rLd\}}qd\}}n6| j dkrjd\}}n"| j dkr~d\}}ntd| j  |j|d| j jd  |dkr|jd |dkr |dkr|jd n*|d
k r|jd n|dkr |jd 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;   w   s0    















r;   z.pbmz.pgmz.ppmN) r   r   __version__r   r$   r   r   r;   Zregister_openr0   Zregister_saveZregister_extensionsr   r   r   r   <module>   s   G#