
    ZMh/-                        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<   d9D ]$Zd:e d:e fed6e d7<   d:e d:e fed8e d7<   %d;D ]Zd<d:e fed6e d7<   d<d:e fed8e d7<    ed=d>          D ]Zd4d5e fed8e d7<    ej        d?          Zd[dDZ G dE dFe	j	                  ZdGdHd+dId-dJdKdLdMdNdd.dOd0dPdQZd\dYZ  ej!        ej"        e            ej#        ej"        e             ej$        ej"        dZ           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                `    	 t          |           S # t          $ r t          |           cY S w xY wN)int
ValueErrorr.   )r,   s    Q/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/PIL/ImImagePlugin.pynumberr4   l   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n6|| j         	                                z   }t          |          dk    rd}t          |          |                    d          r|d d         }n|                    d          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.          |         \  }| _        |t0          k    r6|| j        v r!| j        |                             |           n|g| j        |<   n
|| j        |<   |t4          v r|dz  }n(d|                    dd           }t          |          g|sd}t          |          | j        t                   | _        | j        t
                   | _        |rF|                    d          s1| j                             d          }|r|                    d          1|sd}t          |          t<          | 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tC          |d d                   | _"        nm| j         dv rdx| _        | _        n| j         dv rd| _        d | _        tG          j$        d!|          | _%        n#| j         d"k    r|	r|
stC          |          | _"        d| _&        | j         '                                x| _(        }| j         | _)        | j                            d#          r^	 tU          | j        dd                    }|d$vr,tW          j,        d%d&| j-        z   ||d'd(ddf          g| _.        d S n# t^          $ r Y nw xY w| j        d)v r| j-        d         | j-        d         z  }tW          j,        d*d&| j-        z   |d+          tW          j,        d*d&| j-        z   ||z   d,          tW          j,        d*d&| j-        z   |d|z  z   d-          g| _.        d S tW          j,        d*d&| j-        z   || j        dd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   rG   rG   r   r   r   r&   )          bitr   r   rH      )r   r   raw)Gr   rA   )Rr   rA   )Br   rA   )0fpreadSyntaxErrorseekinfoMODESIZEFRAMESrawmodereadlinelenendswithsplitmatchreerrorgroupdecodeSCALErB   tuplemapr4   OPENCOMMENTappendTAGS_size_mode
startswithLUTrangemodelistlutr	   rN   paletteframetell_ImImageFile__offset_fpr1   r   _Tilesizetiler2   )selfmsgnr,   mekvrs   	greyscalelinearioffsbitsry   s                  r3   _openzImImageFile._open|   sD    S))))"Cc"""Q 	$$	$	&<	'QA Ezz U

a7ll DG$$&&&A1vv||&!#&&&zz'"" crcFE"" 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_
  	 W-- 	 QA  	 W-- 	  	#"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<""4(( 	4<+,,{**!!6DI#5tdAq!R=P !DI
 F +     <--- 9Q<$)A,.Dv	'94NNv	'94$;UU6DI-ta$h DIII v	'94$,PQSUAVWWDIIIs+   0E E1E,,E1A
T, ,
T98T9r1   c                &    | j         t                   S r0   rV   rY   r{   s    r3   n_frameszImImageFile.n_frames  s    y      boolc                .    | j         t                   dk    S )Nr   r   r   s    r3   is_animatedzImImageFile.is_animated  s    y 1$$r   rt   c                   |                      |          sd S t          | j        t                    r| j        j        || _        | j        dk    rd}ndt          | j                  z  }| j        d         |z  dz   dz  | j        d         z  }| j	        ||z  z   }| j        | _
        t          j        dd| j        z   || j        ddf          g| _        d S )	Nr   r   rH   r      rN   rL   rA   )_seek_check
isinstancerw   r
   exrt   rp   r\   ry   rv   rR   r   rx   rZ   rz   )r{   rt   r   ry   r   s        r3   rU   zImImageFile.seek#  s    && 	Fdh.. 	(+
9DDs49~~%D1$q(Q.$)A,>}ut|+( OE6DI#5tdlAr=RSS
			r   c                    | j         S r0   )rt   r   s    r3   ru   zImImageFile.tell9  s
    zr   N)r-   r8   )r-   r1   )r-   r   )rt   r1   r-   r8   )__name__
__module____qualname__formatformat_description!_close_exclusive_fp_after_loadingr   propertyr   r   rU   ru    r   r3   r6   r6   w   s        F-(-%] ] ] ]~ ! ! ! X! % % % X%
 
 
 
,     r   r6   )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   rG   r   r   r   r   r   r   r   r   r   r   imImage.ImagerR   	IO[bytes]filenamestr | bytesr8   c                   	 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        d          d| j        d          d                    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        | |t-          j        dd| j        z   d|ddf          g           d S )NzCannot save z images as IMframesr   zImage type: z image
rE    \   zName: z
zImage size (x*y): r   rC   zFile size (no of images): )r   rG   s   Lut: 1
r>   i  r?   r   r   rM   r   rF   rN   rL   rA   )SAVErp   KeyErrorr2   encoderinfogetwriteencoder   bytesrc   ospathsplitextbasenamejoinr\   ry   ru   r   
getpalettero   r   _saverx   )r   rR   r   
image_typerZ   r   r|   r   nameext
im_palettecolorsrs   r   s                 r3   r   r   V  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?"'!*??rwqz???FFwOOPPP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
O
B(8!gq"=MNNO    s    
A=Az.im)r,   r   r-   r.   )r   r   rR   r   r   r   r-   r8   )%
__future__r   r   r`   typingr   r   r   r   r   r	   _utilr
   rh   DATE	EQUIPMENTrY   rn   NAMErd   rX   rW   rj   rg   r   ro   jcompiler^   r4   r6   r   r   register_openr   register_saveregister_extensionr   r   r3   <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::   C C C C C)% C C CZ 
	
	
		! ($ $ $ $X  K& 4 4 4  K& . . .  +U 3 3 3 3 3r   