o
    ÒèFh˜*  ã                   @  sb  d dl mZ 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i dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“d d!“d"d#“d$d%“d&d'“d(d)“d*d+“d,d-d.d/d0œ¥Zd1D ]Zd2d3e› �fed4e› d5�< d2d3e› �fed6e› d5�< q|d7D ]"Zd8e› �d8e› �fed4e› d5�< d8e› �d8e› �fed6e› d5�< q›d9D ]Zd:d8e› �fed4e› d5�< d:d8e› �fed6e› d5�< qÀed;d<ƒD ]Zd2d3e› �fed6e› d5�< qâe d=¡Zd>d?„ ZG d@dA„ dAejƒZdBdCd)dDd+dEdFdGdHdIdd,d-d.dJdKœZdLdM„ Ze eje¡ e eje¡ e ejdN¡ dS )Oé    )ÚannotationsNé   )ÚImageÚ	ImageFileÚImagePaletteÚCommentÚDatezDigitalization equipmentzFile size (no of images)ÚLutÚNamezScale (x,y)zImage size (x*y)z
Image typez	0 1 image)Ú1r   z	L 1 imagezGreyscale image)ÚLr   zGrayscale imagez	RGB image)ÚRGBúRGB;Lz	RLB image)r   ÚRLBz	RYB imagezB1 imagezB2 image)ÚPzP;2zB4 image)r   zP;4z
X 24 image)r   r   zL 32 S image)ÚIzI;32zL 32 F image)ÚFzF;32z
RGB3 image)r   úRGB;Tz
RYB3 image)r   úRYB;TzLA image)ÚLAzLA;LzPA image)r   úPA;L)ÚRGBAzRGBA;L)ÚRGBXzRGBX;L)ÚCMYKzCMYK;L)ÚYCbCrúYCbCr;L)z
RGBA imagez
RGBX imagez
CMYK imagez	YCC image)Ú8Ú8SÚ16Ú16SÚ32Ú32Fr   úF;zL z imagezL*)r   Ú16LÚ16BzI;)Ú32Sr   é   é!   s"   ^([A-Za-z][^:]*):[ \t]*(.*)[ \t]*$c                 C  s&   zt | ƒW S  ty   t| ƒ Y S w ©N)ÚintÚ
ValueErrorÚfloat)Ús© r-   úJ/var/www/html/loop/nvenv/lib/python3.10/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 )ÚImImageFileÚIMzIFUNC Image MemoryFc              
   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r4q(|r>|d
ks>|dkr?nÇ|| j  	¡  }t
|ƒdkrRd}t|ƒ‚|dd … dkra|d d… }n|dd … dkro|d d… }zt |¡}W n tjyŠ } zd}t|ƒ|‚d }~ww |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 rÒt| \}| _|tkrë|| jv rä| j|  |¡ n|g| j|< n|| j|< |tv rø|d7 }nd| dd¡ }t|ƒ‚q)|�sd}t|ƒ‚| jt | _| jt | _|�r9|d d… dk�r9| j  d¡}|�r9|d d… dk�s'|�sBd}t|ƒ‚t| jv �rÇ| j  d¡}d}	d}
tdƒD ](}|| ||d    k�rn||d  k�r{n n|| |k�ryd}
�qVd}	�qV| jdv �r¶|	�r•|
�s”t|d d… ƒ| _ n2| jdv �r¢d | _| _n| jdv �r®d| _d | _t! "d!|¡| _#n| jd"k�rÇ|	�rÂ|
�sÇt|ƒ| _ d| _$| j  %¡  | _&}| j | _'| jd d… d#k�rz#t(| jdd … ƒ}|d$v�rd%d&| j) ||d'd(ddffg| _*W d S W n
 t+�y   Y nw | jd)v �rA| j)d | j)d  }d*d&| j) |d+fd*d&| j) || d,fd*d&| j) |d|  d-fg| _*d S d*d&| j) || jddffg| _*d S ).Nó   
éd   znot an IM filer   r   )é   r4   r   Tó   ó    ó   éþÿÿÿs   
éÿÿÿÿr&   zlatin-1ÚreplaceÚ*ú,zSyntax error in IM header: ÚasciizNot an IM filezFile truncatedi   é   r4   )r   r   r   ÚPA)r   r   r   )r   r?   r?   r   r   r   r"   )é   é   é    Úbit©r   r   r@   é   )r   r   Úraw)ÚGr   r9   )ÚRr   r9   )ÚBr   r9   ),ÚfpÚreadÚSyntaxErrorÚseekÚinfoÚMODEÚSIZEÚFRAMESÚrawmodeÚreadlineÚlenÚsplitÚmatchÚreÚerrorÚgroupÚdecodeÚSCALEr:   ÚtupleÚmapr/   ÚOPENÚCOMMENTÚappendÚTAGSÚ_sizeÚ_modeÚLUTÚrangeÚmodeÚlistÚlutr   rF   ÚpaletteÚframeÚtellÚ_ImImageFile__offsetÚ_fpr)   ÚsizeÚtiler*   )ÚselfÚmsgÚnr,   ÚmÚeÚkÚvri   Ú	greyscaleÚlinearÚiÚoffsÚbitsrn   r-   r-   r.   Ú_openz   sØ   



€þ€

€Ä>ÿ0€€

 þÿ
ý"zImImageFile._openc                 C  s
   | j t S r(   ©rN   rQ   ©rp   r-   r-   r.   Ún_frames  s   
zImImageFile.n_framesc                 C  s   | j t dkS )Nr   r}   r~   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   r@   r   é   rF   rD   r9   )
Ú_seek_checkrj   rf   rT   rn   rl   rm   rJ   rR   ro   )rp   rj   r{   rn   rz   r-   r-   r.   rM     s   

 "zImImageFile.seekc                 C  s   | j S r(   )rj   r~   r-   r-   r.   rk   +  s   zImImageFile.tellN)Ú__name__Ú
__module__Ú__qualname__ÚformatÚformat_descriptionÚ!_close_exclusive_fp_after_loadingr|   Úpropertyr   r€   rM   rk   r-   r-   r-   r.   r0   u   s     

r0   )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)ÚYCCr   )r   r   r   r   r?   r   r‹   rŒ   r�   r   r   r   r   r   r   c              
   C  s¬  z	t | j \}}W n ty! } zd| j› d�}t|ƒ|‚d }~ww | j dd¡}| d|› d� d¡¡ |r^t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 rÂ| j dd¡}
t|
ƒd }d}tdƒD ]}||
|| ||d  … 7 }|dd|  7 }q¤| |¡ 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
r=   Ú é\   zName: z
zImage size (x*y): %d*%d
zFile size (no of images): )r   r?   s   Lut: 1
r6   iÿ  r7   r   r   rE   ó    r>   rF   rD   r   r9   )ÚSAVErf   ÚKeyErrorr*   ÚencoderinfoÚgetÚwriteÚencodeÚosÚpathÚsplitextÚbasenameÚjoinrT   rn   rk   ÚimÚ
getpalettere   r   Ú_save)rž   rJ   ÚfilenameÚ
image_typerR   rt   rq   r�   ÚnameÚextÚ
im_paletteÚcolorsri   ry   r-   r-   r.   r    H  s6   
€þ



(r    z.im) Ú
__future__r   r™   rW   r�   r   r   r   r_   ÚDATEÚ	EQUIPMENTrQ   rd   ÚNAMEr[   rP   rO   ra   r^   ry   re   ÚjÚcompilerU   r/   r0   r“   r    Úregister_openr†   Úregister_saveÚregister_extensionr-   r-   r-   r.   Ú<module>   sÄ   ÷þýüûúùø	÷
öõôóòðïíìè "
 Bð(