o
    ë6WjR-  ã                   @  s‚  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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/d0d1d2œ¥Zd3D ]Zd4d5e› �fed6e› d7�< d4d5e› �fed8e› d7�< qŠd9D ]"Zd:e› �d:e› �fed6e› d7�< d:e› �d:e› �fed8e› d7�< q©d;D ]Zd<d:e› �fed6e› d7�< d<d:e› �fed8e› d7�< qÎed=d>ƒD ]Zd4d5e› �fed8e› d7�< qðe d?¡Zd]dDdE„ZG dFdG„ dGe	j	ƒZdHdId+dJd-dKdLdMdNdOdd.dPd0dQdRœZd^dZd[„Z e !ej"e¡ e #ej"e ¡ e $ej"d\¡ dS )_é    )ÚannotationsN)ÚIOÚAnyé   )ÚImageÚ	ImageFileÚImagePalette)ÚDeferredErrorÚ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)r   ú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]*$Úsr   ÚreturnÚfloatc                 C  s&   zt | ƒW S  ty   t| ƒ Y S w ©N)ÚintÚ
ValueErrorr-   )r+   © r1   ú`/home/esfera/Documents/content_generation/venv/lib/python3.10/site-packages/PIL/ImImagePlugin.pyÚnumberl   s
   
ÿr3   c                   @  sR   e Zd ZdZdZdZddd„Zedd	d
„ƒZeddd„ƒZ	ddd„Z
ddd„ZdS )ÚImImageFileÚIMzIFUNC Image MemoryFr,   ÚNonec              
   C  sª  | j d usJ ‚d| j  d¡vrd}t|ƒ‚| j  d¡ d}d| jt< d| jt< d| jt< d| _	 | j  d¡}|d	kr;q/|rE|d
ksE|dkrFnÂ|| j  	¡  }t
|ƒdkrYd}t|ƒ‚| d¡re|d d… }n| d¡rp|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|ƒ‚q0|�sd}t|ƒ‚| jt | _| jt | _|�r5| d¡�s5| j  d¡}|�r5| d¡�r&|�s>d}t|ƒ‚t| jv �rÃ| j  d¡}d}	d}
tdƒD ](}|| ||d    k�rj||d  k�rwn n|| |k�rud}
�qRd}	�qR| 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#¡�r	z%t*| jdd … ƒ}|d$v�rýt+ ,d%d&| j- ||d'd(ddf¡g| _.W d S W n
 t/�y   Y nw | jd)v �rB| j-d | j-d  }t+ ,d*d&| j- |d+¡t+ ,d*d&| j- || d,¡t+ ,d*d&| j- |d|  d-¡g| _.d S t+ ,d*d&| j- || jddf¡g| _.d S ).Nó   
éd   znot an IM filer   r   )é   r9   r   Tó   ó    ó   s   
éþÿÿÿéÿÿÿÿr)   zlatin-1ÚreplaceÚ*ú,zSyntax error in IM header: ÚasciizNot an IM filezFile truncatedi   é   r9   )r   r   r   ÚPA)r   r   r   )r   rD   rD   r   r   r   r%   )é   é   é    Úbit©r   r   rE   é   )r   r   Úraw)ÚGr   r>   )ÚRr   r>   )ÚBr   r>   )0ÚfpÚreadÚSyntaxErrorÚseekÚinfoÚMODEÚSIZEÚFRAMESÚrawmodeÚreadlineÚlenÚendswithÚsplitÚmatchÚreÚerrorÚgroupÚdecodeÚSCALEr?   ÚtupleÚmapr3   ÚOPENÚCOMMENTÚappendÚTAGSÚ_sizeÚ_modeÚ
startswithÚLUTÚrangeÚmodeÚlistÚlutr   rK   ÚpaletteÚframeÚtellÚ_ImImageFile__offsetÚ_fpr/   r   Ú_TileÚsizeÚtiler0   )ÚselfÚmsgÚnr+   ÚmÚeÚkÚvrp   Ú	greyscaleÚlinearÚiÚoffsÚbitsrv   r1   r1   r2   Ú_open|   sæ   





€þ€

€Ä>ÿ0€€

ÿÿúÿÿ
ý

ÿzImImageFile._openr/   c                 C  s
   | j t S r.   ©rS   rV   ©rx   r1   r1   r2   Ún_frames  s   
zImImageFile.n_framesÚboolc                 C  s   | j t dkS )Nr   r…   r†   r1   r1   r2   Úis_animated   s   zImImageFile.is_animatedrq   c                 C  s¢   |   |¡sd S t| jtƒr| jj‚|| _| jdkrd}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   rE   r   é   rK   rI   r>   )Ú_seek_checkÚ
isinstancert   r	   Úexrq   rm   rY   rv   rs   rO   r   ru   rW   rw   )rx   rq   rƒ   rv   r‚   r1   r1   r2   rR   $  s   

 
ÿzImImageFile.seekc                 C  s   | j S r.   )rq   r†   r1   r1   r2   rr   :  s   zImImageFile.tellN)r,   r6   )r,   r/   )r,   rˆ   )rq   r/   r,   r6   )Ú__name__Ú
__module__Ú__qualname__ÚformatÚformat_descriptionÚ!_close_exclusive_fp_after_loadingr„   Úpropertyr‡   r‰   rR   rr   r1   r1   r1   r2   r4   w   s    
 !
r4   )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   )ÚYCCr   )r   r   r   r   rD   r   r–   r—   r˜   r   r   r   r™   r   r   ÚimúImage.ImagerO   ú	IO[bytes]Úfilenameústr | bytesr6   c                 C  sØ  z	t | j \}}W n ty! } zd| j› d�}t|ƒ|‚d }~ww | j dd¡}| d|› d� d¡¡ |rht|t	ƒrA| 
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 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 | |t dd| j d|ddf¡g¡ d S )NzCannot save z images as IMÚframesr   zImage type: z image
rB   Ú é\   zName: z
zImage size (x*y): r   r@   zFile size (no of images): )r   rD   s   Lut: 1
r;   iÿ  r<   r   r   rJ   ó    rC   rK   rI   r>   )ÚSAVErm   ÚKeyErrorr0   ÚencoderinfoÚgetÚwriteÚencoderŒ   Úbytesr`   ÚosÚpathÚsplitextÚbasenameÚjoinrY   rv   rr   r›   Ú
getpaletterl   r   Ú_saveru   )r›   rO   rž   Ú
image_typerW   r|   ry   r    ÚnameÚextÚ
im_paletteÚcolorsrp   r�   r1   r1   r2   r±   W  s>   
€þ

*



 ÿr±   z.im)r+   r   r,   r-   )r›   rœ   rO   r�   rž   rŸ   r,   r6   )%Ú
__future__r   r«   r]   Útypingr   r   r¡   r   r   r   Ú_utilr	   re   ÚDATEÚ	EQUIPMENTrV   rk   ÚNAMEra   rU   rT   rg   rd   r�   rl   ÚjÚcompiler[   r3   r4   r¤   r±   Úregister_openr‘   Úregister_saveÚregister_extensionr1   r1   r1   r2   Ú<module>   sÈ   ÷þýüûúùø	÷
öõôóòðïíìè "

 Oð
,