a
    ׶a_                     @   s   d dl mZm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ej	ee e
ej	e eej	g d eej	d dS )   )Image	ImageFiles    	
1LRGBZCMYKPRGBA)   P4   P5   P6s   P0CMYKs   PyPs   PyRGBAs   PyCMYKc                 C   s   | dd dko| d dv S )N    r      Ps   0456y )prefixr   r   b/Users/vegardjervell/Documents/master/model/venv/lib/python3.9/site-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   sL   | j d}|rH|tv rqH|dkr*td|| }t|dkr tdq |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   _token4   s    
zPpmImageFile._tokenc                 C   s^  | j d}|dkrtd| |}t| }dddd|| _|dkrVd| _d	}n
| | _}td
D ]}| j d}|t	vrq|dkrlt
dql|dkrq| j  }qlt| |}|dkr|}qh|dkr|}|dkr q,qh|dkrh|dkrh|dks
t
d| |dk r d| _d}qhd| _d}qh||f| _ddd||f| j  |ddffg| _d S )Nr   r   znot a PPM filezimage/x-portable-bitmapzimage/x-portable-graymapzimage/x-portable-pixmap)r	   r
   r   r   1;I   r   z(File does not extend beyond magic number   #r         r   zToo many colors for band:    II;16BI;32Braw)r   r   SyntaxErrorr   MODESgetZcustom_mimetypemoderanger   r   readlineint_sizetellZtile)r   r   Zmagic_numberr,   rawmodeixZxsizeZysizer   r   r   _open@   sT    





zPpmImageFile._openN)r   )__name__
__module____qualname__formatformat_descriptionr   r4   r   r   r   r   r   /   s   
r   c              
   C   s&  | j dkrd\}}n|| j dkr(d\}}nh| j dkrV|  d dk rLd\}}qd	\}}n:| j d
krjd\}}n&| j dkr~d\}}ntd| j  d||d| j d  |dkr|d |dkr|dkr|d n&|dkr|d n|dkr|d t| |dd| j d|ddffg d S )Nr   )r   r	   r   )r   r
   r%   r   r$   )r&   r
   )r'   r
   r   )r   r   r   zcannot write mode z as PPMz
%d %d
asciir   s   255
r
   r&   s   65535
r'   s   2147483648
r(   )r   r   r   )r,   Z
getextremaOSErrorwritesizeencoder   _save)Zimr   filenamer2   headr   r   r   r?   {   s0    












r?   )z.pbmz.pgmz.ppmz.pnmzimage/x-portable-anymapN) r   r   r   r*   r   r   r?   Zregister_openr8   Zregister_saveZregister_extensionsZregister_mimer   r   r   r   <module>   s    L$