a
    i=ic)                     @   s  d dl Z d dlZddlmZmZmZ dZdZdZdZ	dZ
d	Zd
ZdZdZed ed ed e	d e
d ed ed ed ed i	ZddddddddddddddddddddddZdD ]8Zd d!e fed"e d#< d d!e fed$e d#< qd%D ]DZd&e d&e fed"e d#< d&e d&e fed$e d#< qd'D ]:Zd(d&e fed"e d#< d(d&e fed$e d#< q,ed)d*D ] Zd d!e fed$e d#< qred+Zd,d- ZG d.d/ d/ejZd0d1dd2dd3d4d5d6d7ddddd8d9Zd:d; Zeeje eeje eejd< dS )=    N   )Image	ImageFileImagePaletteCommentDatezDigitalization equipmentzFile size (no of images)ZLutNamezScale (x,y)zImage size (x*y)z
Image type)1r	   )Lr
   )RGBRGB;L)r   ZRLB)PzP;2)r   zP;4)r   r   )IzI;32)FzF;32)r   RGB;T)r   RYB;T)LAzLA;L)r   PA;L)RGBAzRGBA;L)RGBXzRGBX;L)CMYKzCMYK;L)YCbCrYCbCr;L)z	0 1 imagez	L 1 imagezGreyscale imagezGrayscale imagez	RGB imagez	RLB imagez	RYB imagezB1 imagezB2 imagezB4 imagez
X 24 imagezL 32 S imagezL 32 F imagez
RGB3 imagez
RYB3 imagezLA imagezPA imagez
RGBA imagez
RGBX imagez
CMYK imagez	YCC image)8Z8S16Z16SZ32Z32Fr   F;zL z imagezL*)r   Z16L16BzI;)Z32Sr      !   s"   ^([A-Za-z][^:]*):[ \t]*(.*)[ \t]*$c                 C   s*   z
t | W S  ty$   t|  Y S 0 d S N)int
ValueErrorfloat)s r$   b/home/droni/.local/share/virtualenvs/DPS-5Je3_V2c/lib/python3.9/site-packages/PIL/ImImagePlugin.pynumberj   s    
r&   c                   @   sH   e Zd ZdZdZdZdd Zedd Zedd	 Z	d
d Z
dd ZdS )ImImageFileZIMzIFUNC Image MemoryFc              
   C   s  d| j dvrtd| j d d}d| jt< d| jt< d| jt< d| _| j d}|dkrbqL|rv|d	ksv|d
krzq|| j 	  }t
|dkrtd|dd  dkr|d d }n|dd  dkr|d d }zt|}W n2 tjy } ztd|W Y d }~n
d }~0 0 |r|dd\}}|dd}|dd}|tttfv r|dd}ttt|d}t
|dkr|d }n"|tkr|tv rt| \}| _|tkr|| jv r| j| | n|g| j|< n
|| j|< |tv r|d7 }qLtd|dd qL|s(td| jt | _| jt | _|rh|d d d
krh| j d}q@|svtdt| jv r~| j d}d}d}	tdD ]N}
||
 ||
d    kr||
d  krn n||
 |
krd}	nd}q| jdv r\|r|	sZt|d d | _n@| jdv r4d | _| _n| jdv rLd| _d| _t !d || _"n"| jd!kr~|rt|	s~t|| _d| _#| j $  | _%}| j | _&| jd d d"krzFt'| jdd  }|d#vrd$d%| j( ||d&d'ddffg| _)W d S W n t*y
   Y n0 | jd(v rp| j(d | j(d  }d)d%| j( |d*fd)d%| j( || d+fd)d%| j( |d|  d,fg| _)nd)d%| j( || jddffg| _)d S )-N   
d   znot an IM filer   r
   )   r*   r             s   
r   zlatin-1replace*,zSyntax error in IM header: asciizNot an IM filezFile truncatedi      r*   )r
   r   r   PA)r
   r   r   )r   r5   r5   r   r   r   r   )          bitr   r   r6      )r   r   raw)Gr   r/   )Rr   r/   )Br   r/   )+fpreadSyntaxErrorseekinfoMODESIZEFRAMESrawmodereadlinelensplitmatchreerrorgroupdecodeSCALEr0   tuplemapr&   OPENCOMMENTappendTAGS_sizemodeLUTrangelistlutr   r<   paletteframetell_ImImageFile__offset_fpr    sizetiler!   )selfnr#   mekvr^   Z	greyscaleZlinearioffsbitsrc   r$   r$   r%   _open{   s    


 




0

 
zImImageFile._openc                 C   s
   | j t S r   rD   rG   re   r$   r$   r%   n_frames  s    zImImageFile.n_framesc                 C   s   | j t dkS )Nr   ro   rp   r$   r$   r%   is_animated  s    zImImageFile.is_animatedc                 C   s   |  |sd S || _| jdkr$d}ndt| j }| jd | d d | jd  }| j||  }| j| _dd| j || jddffg| _	d S )	Nr	   r   r6   r      r<   r:   r/   )
Z_seek_checkr_   rY   rJ   rc   ra   rb   r@   rH   rd   )re   r_   rm   rc   rl   r$   r$   r%   rC     s    

 zImImageFile.seekc                 C   s   | j S r   )r_   rp   r$   r$   r%   r`   -  s    zImImageFile.tellN)__name__
__module____qualname__formatformat_descriptionZ!_close_exclusive_fp_after_loadingrn   propertyrq   rr   rC   r`   r$   r$   r$   r%   r'   u   s    

r'   )z0 1r	   )	Greyscaler
   )rz   r   )zL 32SzI;32S)zL 16I;16)zL 16LI;16L)zL 16BI;16B)zL 32FzF;32F)ZYCCr   )r	   r
   r   r   r5   r   r{   r|   r}   r   r   r   r   r   r   c           	   
   C   sj  zt | j \}}W n8 tyJ } z td| j d|W Y d }~n
d }~0 0 | jdd}|d| dd |rtj	
tj	|\}}d|d d	t|  |g}|d
| dd |d| j d |d| dd | jdv r|d |dd|   d  | jdv rB|| jdd t| |dd| j d|ddffg d S )NzCannot save z images as IMframesr   zImage type: z image
r3    \   zName: z
zImage size (x*y): %d*%d
zFile size (no of images): )r   r5   s   Lut: 1
r,   i  r-   r   r   r<   r:   r   r/   )SAVErY   KeyErrorr!   ZencoderinfogetwriteencodeospathsplitextbasenamejoinrJ   rc   r`   imZ
getpaletter   _save)	r   r@   filenameZ
image_typerH   rh   r~   nameextr$   r$   r%   r   J  s$    *
r   z.im)r   rM   r   r   r   r   rU   ZDATEZ	EQUIPMENTrG   rZ   NAMErQ   rF   rE   rW   rT   rk   r[   compilerK   r&   r'   r   r   Zregister_openrw   Zregister_saveZregister_extensionr$   r$   r$   r%   <module>   s    "
 D"