
     fp+                       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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/d0d1Zd2D ]Zd3d4e fed5e d6<   d3d4e fed7e d6<   d8D ]$Zd9e d9e fed5e d6<   d9e d9e fed7e d6<   %d:D ]Zd;d9e fed5e d6<   d;d9e fed7e d6<    ed<d=          D ]Zd3d4e fed7e d6<    ej        d>          ZdZdCZ G dD dEe	j	                  ZdFdGd*dHd,dIdJdKdLdMdd-dNd/dOdPZd[dXZ ej        ej         e            ej!        ej         e            ej"        ej         dY           dS )\    )annotationsN)IOAny   )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)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                `    	 t          |           S # t          $ r t          |           cY S w xY wN)int
ValueErrorr-   )r+   s    T/var/www/api.educacionweb.es/myenv/lib/python3.11/site-packages/PIL/ImImagePlugin.pynumberr3   k   s<    1vv   Qxxs    --c                  b    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 MemoryFr,   Nonec                   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"|r|d
k    s|dk    rn(|| j         	                                z   }t          |          dk    rd}t          |          |dd          dk    r|d d         }n|dd          dk    r
|d d         }	 t                              |          }n)# t          j        $ r}d}t          |          |d }~ww xY w|rE|                    dd          \  }}|                    dd          }|                    dd          }|t          t"          t          fv rg|                    dd          }t'          t)          t*          |                    d                              }t          |          dk    r|d         }n)|t
          k    r|t,          v rt,          |         \  }| _        |t.          k    r6|| j        v r!| j        |                             |           n|g| j        |<   n
|| j        |<   |t2          v r|dz  }n(d|                    dd           }t          |          Y|sd}t          |          | j        t                   | _        | j        t
                   | _        |r8|d d         dk    r*| j                             d          }|r|d d         dk    *|sd}t          |          t8          | j        v r | j                             d          }d}	d}
t;          d          D ];}||         ||dz            cxk    r||dz            k    rn n||         |k    rd}
9d}	<| j        dv rk|	r|
st?          |d d                   | _         nm| j        dv rdx| _        | _        n| j        dv rd| _        d | _        tC          j"        d!|          | _#        n#| j        d"k    r|	r|
st?          |          | _         d| _$        | j         %                                x| _&        }| j         | _'        | j        d d         d#k    rM	 tQ          | j        dd                    }|d$vrd%d&| j)        z   ||d'd(ddffg| _*        d S n# tV          $ r Y nw xY w| j        d)v rT| j)        d         | j)        d         z  }d*d&| j)        z   |d+fd*d&| j)        z   ||z   d,fd*d&| j)        z   |d|z  z   d-fg| _*        d S d*d&| j)        z   || j        ddffg| _*        d S ).N   
d   znot an IM filer   r   )   r;   r   T          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   rF   rF   r   r   r   r%   )          bitr   r   rG      )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SCALErA   tuplemapr3   OPENCOMMENTappendTAGS_size_modeLUTrangemodelistlutr	   rM   paletteframetell_ImImageFile__offset_fpr0   sizetiler1   )selfmsgnr+   mekvrp   	greyscalelinearioffsbitsru   s                  r2   _openzImImageFile._open{   s	    S))))"Cc"""Q 	$$	$	&<	'QA Ezz U

a7ll DG$$&&&A1vv||&!#&&&v  crcF2335crcF.KKNN8 . . .&!#&&A-.   'wwq!}}1 HHY	22HHY	22 ---		#s++Ac&!''#,,7788A1vv{{aD$YY199&*1gOAt| <<DI~~	!++A....()s	!#$DIaL99FA SAHHWi4P4PRR!#&&&y<	'|  	#"Cc""" Yt_
Yt_
  	 AbqbEW$$QA  	 AbqbEW$$ 	#"Cc"""$)gll3''GIF3ZZ " "1:S!1EEEEWQW5EEEEEEqzQ!" !IIy222 	F! 7#'#6#6yJ..477
T\\l22%)
'-#/#3GW#E#EDLLe##  - -#G}}DH
#w||~~-7<t##4<+,,{**"'$));TD!QPQSUCV!W XDIF +     <--- 9Q<$)A,.D*D,?*D4KF*D1t8O\JDIII  $)!3TDL!R;PQRDIIIs*   "D= =E#EE#<9S8 8
TTr0   c                &    | j         t                   S r/   rU   rX   rw   s    r2   n_frameszImImageFile.n_frames  s    y      boolc                .    | j         t                   dk    S )Nr   r   r   s    r2   is_animatedzImImageFile.is_animated  s    y 1$$r   rq   c                >   |                      |          sd S || _        | j        dk    rd}ndt          | j                  z  }| j        d         |z  dz   dz  | j        d         z  }| j        ||z  z   }| j        | _        dd| j        z   || j        ddffg| _	        d S )	Nr   r   rG   r      rM   rK   r@   )
_seek_checkrq   rm   r[   ru   rs   rt   rQ   rY   rv   )rw   rq   r   ru   r   s        r2   rT   zImImageFile.seek  s    && 	F
9DDs49~~%D1$q(Q.$)A,>}ut|+(Vdi/a7LMN			r   c                    | j         S r/   )rq   r   s    r2   rr   zImImageFile.tell,  s
    zr   N)r,   r7   )r,   r0   )r,   r   )rq   r0   r,   r7   )__name__
__module____qualname__formatformat_description!_close_exclusive_fp_after_loadingr   propertyr   r   rT   rr    r   r2   r5   r5   v   s        F-(-%US US US USn ! ! ! X! % % % X%O O O O$     r   r5   )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   rF   r   r   r   r   r   r   r   r   r   r   imImage.ImagerQ   	IO[bytes]filenamestr | bytesr7   c           
     H   	 t           | j                 \  }}n-# t          $ r }d| j         d}t          |          |d }~ww xY w| j                            dd          }|                    d| d                    d                     |rt          |t                    r|
                    d          }t          j                            t          j                            |                    \  }}	d                    |d d	t!          |	          z
           |	g          }|                    d
| d                    d                     |                    d| j        z                      d                     |                    d| d                    d                     | j        dv r|                    d           |                    dd|                                z
  z  dz              | j        dv rw| j                            dd          }
t!          |
          dz  }d}t+          d          D ]#}||
||z  ||dz   z           z  }|dd|z
  z  z  }$|                    |           t-          j        | |dd| j        z   d|ddffg           d S )NzCannot save z images as IMframesr   zImage type: z image
rD    \   zName: z
zImage size (x*y): %d*%d
zFile size (no of images): )r   rF   s   Lut: 1
r=   i  r>   r   r   rL   r   rE   rM   rK   r   r@   )SAVErm   KeyErrorr1   encoderinfogetwriteencode
isinstancebytesra   ospathsplitextbasenamejoinr[   ru   rr   r   
getpaletterl   r   _save)r   rQ   r   
image_typerY   r{   rx   r   nameext
im_palettecolorsrp   r   s                 r2   r   r   I  s   %"27m
GG % % %3RW333oo1$% ^!,,FHH2J22299'BBCCC 
6
 h&& 	0w//HG$$RW%5%5h%?%?@@	cww_rCHH}_-s344
$$$$$++G44555HH+bg5==gFFGGGHH6&666==gFFGGG	w+
HHWbggii(72333	w+U%%eW55
ZA%q 	0 	0Az&1*vQ/?"?@@Gw#,//GG
OBeVbg%5q7Ar:JKLMMMMMs    
A=Az.im)r+   r   r,   r-   )r   r   rQ   r   r   r   r,   r7   )#
__future__r   r   r^   typingr   r   r   r   r   r	   rf   DATE	EQUIPMENTrX   rk   NAMErb   rW   rV   rh   re   r   rl   jcompiler\   r3   r5   r   r   register_openr   register_saveregister_extensionr   r   r2   <module>r      s  6 # " " " " " 				 				         , , , , , , , , , ,
 &		# Q!q
A!	1!!
  z	
 z !   
   . M M  "!" "#& '( )* %#$%1  8 
/ + +Aa?Daa?Da	 0 0A$HHh1hh/Da$HHh1hh/Da	 + +Aa?Daa?Da	q" + +Aa?Da 	
9::   w w w w w)% w w wB 
	
	
		! ("N "N "N "NT  K& 4 4 4  K& . . .  +U 3 3 3 3 3r   