a
    h/-                     @  sP  d dl mZ d dlZd dlZd dlmZmZ ddlmZm	Z	m
Z
 ddl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 ]FZd)e d)e fed%e d&< d)e d)e fed'e d&< q
d*D ]:Zd+d)e fed%e d&< d+d)e fed'e d&< qVed,d-D ] Zd#d$e fed'e d&< qed.Zd/d0d1d2d3ZG d4d5 d5e	j	Zd6d7dd8dd9d:d;d<d=ddd>dd?d@ZdAdBdCdDdEdFdGZ e!ej"e e#ej"e  e$ej"dH dS )I    )annotationsN)IOAny   )Image	ImageFileImagePalette)DeferredError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)r   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16LZ16BzI;)Z32Sr      !   s"   ^([A-Za-z][^:]*):[ \t]*(.*)[ \t]*$r   float)sreturnc                 C  s*   z
t | W S  ty$   t|  Y S 0 d S N)int
ValueErrorr"   )r#    r(   ?/var/www/auris/lib/python3.9/site-packages/PIL/ImImagePlugin.pynumberl   s    
r*   c                   @  sh   e Zd ZdZdZdZddddZeddd	d
ZeddddZ	dddddZ
ddddZdS )ImImageFileZIMzIFUNC Image MemoryFNone)r$   c              
   C  s  d| j dvrd}t|| j d d}d| jt< d| jt< d| jt< d| _| j d}|dkrfqP|rz|d	ksz|d
kr~q || j 	  }t
|dkrd}t||dr|d d }n|dr|d d }zt|}W n6 tjy } zd}t||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 }qPd|dd }t|qP|s2d}t|| jt | _| jt | _|rl|d
sl| j d}qJ|s~d}t|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 rd|	r"|
sbt!|d d | _"n@| j dv r<d | _| _n| j dv rTd| _d| _t#$d || _%n"| j d!kr|	r||
st!|| _"d| _&| j '  | _(}| j | _)| jd"rzJt*| jdd  }|d#vrt+,d$d%| j- ||d&d'ddfg| _.W d S W n t/y   Y n0 | jd(v r| j-d | j-d  }t+,d)d%| j- |d*t+,d)d%| j- || d+t+,d)d%| j- |d|  d,g| _.n"t+,d)d%| j- || jdd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   r:   r:   r   r   r   r   )          bitr   r   r;      )r   r   raw)Gr   r4   )Rr   r4   )Br   r4   )0fpreadSyntaxErrorseekinfoMODESIZEFRAMESrawmodereadlinelenendswithsplitmatchreerrorgroupdecodeSCALEr5   tuplemapr*   OPENCOMMENTappendTAGS_size_mode
startswithLUTrangemodelistZlutr   rA   paletteframetell_ImImageFile__offset_fpr&   r   _Tilesizetiler'   )selfmsgnr#   mekvre   Z	greyscaleZlinearioffsbitsrk   r(   r(   r)   _open|   s    




 





0



zImImageFile._openr&   c                 C  s
   | j t S r%   rI   rL   rm   r(   r(   r)   n_frames  s    zImImageFile.n_framesboolc                 C  s   | j t dkS )Nr   rx   ry   r(   r(   r)   is_animated  s    zImImageFile.is_animated)rf   r$   c                 C  s   |  |sd S t| jtr"| jj|| _| jdkr8d}ndt| j }| jd | d d | jd  }| j	||  }| j| _
tdd| j || jddfg| _d S )	Nr   r   r;   r      rA   r?   r4   )Z_seek_check
isinstanceri   r	   exrf   rc   rO   rk   rh   rE   r   rj   rM   rl   )rm   rf   rv   rk   ru   r(   r(   r)   rH   #  s    

 zImImageFile.seekc                 C  s   | j S r%   )rf   ry   r(   r(   r)   rg   9  s    zImImageFile.tellN)__name__
__module____qualname__formatformat_descriptionZ!_close_exclusive_fp_after_loadingrw   propertyrz   r|   rH   rg   r(   r(   r(   r)   r+   w   s     r+   )z0 1r   )	Greyscaler   )r   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)RGBXr   )ZYCCr   )r   r   r   r   r:   r   r   r   r   r   r   r   r   r   r   zImage.Imagez	IO[bytes]zstr | bytesr,   )imrE   filenamer$   c                 C  s  zt | j \}}W n< tyN } z$d| j d}t||W Y d }~n
d }~0 0 | jdd}|d| dd |rt|t	r|
d}tjtj|\}}	d|d d	t|	  |	g}|d
| dd |d| jd  d| jd  dd |d| dd | jdv r4|d |dd|   d  | jdv r| jdd}
t|
d }d}tdD ]2}||
|| ||d   7 }|dd|  7 }q|| t| |tdd| j d|ddfg d S )NzCannot save z images as IMframesr   zImage type: z image
r8    \   zName: z
zImage size (x*y): r   r6   zFile size (no of images): )r   r:   s   Lut: 1
r1   i  r2   r   r   r@       r9   rA   r?   r4   )SAVErc   KeyErrorr'   Zencoderinfogetwriteencoder~   bytesrV   ospathsplitextbasenamejoinrO   rk   rg   r   Z
getpaletterb   r   _saverj   )r   rE   r   Z
image_typerM   rq   rn   r   nameextZ
im_palettecolorsre   rt   r(   r(   r)   r   V  s:     

*

 r   z.im)%
__future__r   r   rS   typingr   r   r   r   r   r   Z_utilr	   r[   ZDATEZ	EQUIPMENTrL   ra   NAMErW   rK   rJ   r]   rZ   rt   rb   jcompilerQ   r*   r+   r   r   Zregister_openr   Zregister_saveZregister_extensionr(   r(   r(   r)   <module>   s    $
 N,