
    &Ths*                     .   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.d/Zd0D ]  Zd1d2e fed3e d4<   d1d2e fed5e d4<     d6D ]$  Zd7e d7e fed3e d4<   d7e d7e fed5e d4<   & d8D ]  Zd9d7e fed3e d4<   d9d7e fed5e d4<      ed:d;      D ]  Zd1d2e fed5e d4<     ej&                  d<      Zd= Z G d> d?ej                        Zd@dAd(dBd*dCdDdEdFdGdd+d,d-dHdIZdJ Z ej2                  ej4                  e        ej6                  ej4                  e        ej8                  ej4                  dK       y)L    N   )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                 N    	 t        |       S # t        $ r t        |       cY S w xY wN)int
ValueErrorfloat)ss    Y/home/stella.sw7ft.com/public_html/venv/lib/python3.12/site-packages/PIL/ImImagePlugin.pynumberr/   j   s(    1v Qxs   
 $$c                   J    e Zd ZdZdZdZd Zed        Zed        Z	d Z
d Zy	)
ImImageFileIMzIFUNC Image MemoryFc                 
   d| j                   j                  d      vrd}t        |      | j                   j                  d       d}d| j                  t
        <   d| j                  t        <   d| j                  t        <   d| _        	 | j                   j                  d      }|dk(  r"|r
|d	k(  s|d
k(  rn|| j                   j                         z   }t        |      dkD  rd}t        |      |dd  dk(  r|d d }n|dd  dk(  r|d d }	 t        j                  |      }|r |j                  dd      \  }}|j!                  dd      }|j!                  dd      }|t        t"        t        fv rN|j%                  dd      }t'        t)        t*        |j                  d                  }t        |      dk(  r(|d   }n"|t
        k(  r|t,        v rt,        |   \  }| _        |t.        k(  r>|| j                  v r| j                  |   j1                  |       n |g| j                  |<   n|| j                  |<   |t2        v r&|dz  }n d|j!                  dd      z   }t        |      |sd}t        |      | j                  t           | _        | j                  t
           | _        |r.|d d d
k7  r&| j                   j                  d      }|r	|d d d
k7  r&|sd}t        |      t8        | j                  v r| j                   j                  d      }d}	d}
t;        d      D ]-  }||   ||dz      cxk(  r||dz      k(  rn n||   |k7  s)d}
,d}	/ | j6                  dv rm|	r|
st=        |d d       | _        nx| j6                  dv rdx| _        | _        n| j6                  dv rd| _        d| _        tA        jB                  d |      | _"        n#| j6                  d!k(  r|	r|
st=        |      | _        d| _#        | j                   jI                         x| _%        }| j                   | _&        | j                  d d d"k(  r=	 tO        | j                  dd        }|d#vrd$d%| jP                  z   ||d&d'ddffg| _)        y 	 | j                  d(v rf| jP                  d   | jP                  d   z  }d)d%| jP                  z   |d*fd)d%| jP                  z   ||z   d+fd)d%| jP                  z   |d|z  z   d,fg| _)        y d)d%| jP                  z   || j                  ddffg| _)        y # t        j                  $ r}d}t        |      |d }~ww xY w# tT        $ r Y w xY w)-N   
d   znot an IM filer   r   )   r6   r             s   
r&   zlatin-1replace*,zSyntax error in IM header: asciizNot an IM filezFile truncatedi      r6   )r   r   r   PA)r   r   r   )r   rA   rA   r   r   r   r"   )          bitr   r   rB      )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SCALEr<   tuplemapr/   OPENCOMMENTappendTAGS_sizemodeLUTrangelistlutr   rH   paletteframetell_ImImageFile__offset_fpr*   sizetiler+   )selfmsgnr-   mekvrj   	greyscalelinearioffsbitsro   s                  r.   _openzImImageFile._openz   s(    S))"Cc""Q 		$$		$		&QA EzU
a7l DGG$$&&A1v|&!#&&v crF235crF.KKN
 wwq!}1 HHY	2HHY	2 --		#s+Ac&!''#,78A1v{aD$Y19&*1gOAt| <DII~		!++A.()s		!#$DIIaL9FA 4ahhw	6RR!#&&y | "Cc"" YYt_
IIdO	 AbqEW$QA AbqEW$"Cc""$))ggll3'GIF3Z "1:S!1EWQW5EEqzQ!" !I" yy22!#'#6yyJ.366	DLl2$(	'-#/#3#3GW#EDLe# #G}DH
#ww||~-77<<t#4<<+,{*"'$)));TD!QPQSUCV!W XDI + <<-- 99Q<$))A,.D*D,?*D4KF*D1t8O\JDI  $))!3TDLL!R;PQRDIW 88 .&!#&A-.z  s*   T ::T: T7$T22T7:	UUc                 (    | j                   t           S r)   rP   rS   rq   s    r.   n_frameszImImageFile.n_frames  s    yy      c                 .    | j                   t           dkD  S )Nr   r   r   s    r.   is_animatedzImImageFile.is_animated  s    yy 1$$r   c                 l   | j                  |      sy || _        | 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| _	        y )	Nr   r   rB   r      rH   rF   r;   )
_seek_checkrk   re   rV   ro   rm   rn   rL   rT   rp   )rq   rk   r|   ro   r{   s        r.   rO   zImImageFile.seek  s    &
99Ds499~%D1$q(Q.$))A,>}}ut|+((Vdii/a7LMN	r   c                     | j                   S r)   )rk   r   s    r.   rl   zImImageFile.tell+  s    zzr   N)__name__
__module____qualname__formatformat_description!_close_exclusive_fp_after_loadingr}   propertyr   r   rO   rl    r   r.   r1   r1   u   sN    F-(-%USn ! ! % %O$r   r1   )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   rA   r   r   r   r   r   r   r   r   r   r   c           
         	 t         | j                     \  }}| j                  j                  dd      }|j                  d| dj                  d             |rt        j                  j                  t        j                  j                  |            \  }}	dj                  |d d	t        |	      z
   |	g      }|j                  d
| dj                  d             |j                  d| j                  z  j                  d             |j                  d| dj                  d             | j                  dv r|j                  d       |j                  dd|j                         z
  z  dz          | j                  dv ri| j                   j#                  dd      }
t        |
      dz  }d}t%        d      D ]  }||
||z  ||dz   z   z  }|dd|z
  z  z  }  |j                  |       t'        j(                  | |dd| j                  z   d|ddffg       y # t        $ r!}d| j                   d}t        |      |d }~ww xY w)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   rA   s   Lut: 1
r8   i  r9   r   r   rG   r   r@   rH   rF   r   r;   )SAVEre   KeyErrorr+   encoderinfogetwriteencodeospathsplitextbasenamejoinrV   ro   rl   im
getpaletterg   r   _save)r   rL   filename
image_typerT   ru   rr   r   nameext
im_palettecolorsrj   rz   s                 r.   r   r   H  s   %"277m
G
 ^^!,FHH|J<z299'BC
 GG$$RWW%5%5h%?@	cww_rCH}-s34
6$t$++G45HH+bgg5==gFGHH)&6==gFG	ww+
HHWbggi(723	ww+UU%%eW5
ZA%q 	0Az&1*vQ/?@@Gw#,//G	0 	OOBeVbgg%5q7Ar:JKLM;  %RWWI]3o1$%s   H 	I$I  Iz.im)r   rY   r   r   r   r   ra   DATE	EQUIPMENTrS   rf   NAMEr]   rR   rQ   rc   r`   rz   rg   compilerW   r/   r1   r   r   register_openr   register_saveregister_extensionr   r   r.   <module>r      s/  : 
 	 , ,
 &		# Q!q
A!	1!!
  z	
 z !   
   . M M  "!" "#& '( )* %$$%18 
/ +A2aS?D2aS2aS?D2aS+ 
 0A H1#h/D2aS H1#h/D2aS0 
 +A2aS?D2aS2aS?D2aS+ 
q" +A2aS?D2aS+ 	

9:w)%% wB 
	
	
		!( NP   K&& 4   K&& .   ++U 3r   