
    Bwg,                    N   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j2                  d>      ZdOd?Z G d@ dAe	j                        ZdBdCd*dDd,dEdFdGdHdIdd-dJd/dKdLZdPdMZ ej>                  ej@                  e        ejB                  ej@                  e        ejD                  ej@                  dN       y)Q    )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]*$c                N    	 t        |       S # t        $ r t        |       cY S w xY wN)int
ValueErrorfloat)ss    H/var/www/horilla/myenv/lib/python3.12/site-packages/PIL/ImImagePlugin.pynumberr2   k   s(    1v Qxs   
 $$c                  T    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y	)ImImageFileIMzIFUNC Image MemoryFc           
     H   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       }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}	/ | j<                  dv rm|	r|
st?        |d d       | _         nx| j<                  dv rdx| _        | _        n| j<                  dv rd| _        d| _        tC        jD                  d |      | _#        n#| j<                  d!k(  r|	r|
st?        |      | _         d| _$        | j                   jK                         x| _&        }| j                   | _'        | j                  d d d"k(  rO	 tQ        | j                  dd        }|d#vr1tS        jT                  d$d%| jV                  z   ||d&d'ddf      g| _,        y 	 | j                  d(v r| jV                  d   | jV                  d   z  }tS        jT                  d)d%| jV                  z   |d*      tS        jT                  d)d%| jV                  z   ||z   d+      tS        jT                  d)d%| jV                  z   |d|z  z   d,      g| _,        y tS        jT                  d)d%| jV                  z   || j                  ddf      g| _,        y # t        j                  $ r}d}t        |      |d }~ww xY w# tZ        $ r Y w xY w)-N   
d   znot an IM filer   r   )   r9   r             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>   ).fpreadSyntaxErrorseekinfoMODESIZEFRAMESrawmodereadlinelensplitmatchreerrorgroupdecodeSCALEr?   tuplemapr2   OPENCOMMENTappendTAGS_size_modeLUTrangemodelistlutr	   rK   paletteframetell_ImImageFile__offset_fpr-   r   _Tilesizetiler.   )selfmsgnr0   mekvrn   	greyscalelinearioffsbitsrt   s                  r1   _openzImImageFile._open{   sU    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 4AHHWi4P3QR!#&&y | "Cc"" YYt_
YYt_
 AbqEW$QA AbqEW$"Cc""$))ggll3'GIF3Z "1:S!1EWQW5EEqzQ!" !I" yy22!#'#6yyJ.477
T\l2%)
'-#/#3#3GW#EDLe# #G}DH
#ww||~-77<<t#4<<+,{*!!6DII#5tdAq!R=P!DI
  + <<-- 99Q<$))A,.Dv		'94Nv		'94$;U6DII-ta$hDI v		'94$,,PQSUAVWDIc 88 .&!#&A-.B  s+   U+ :AV +V>VV	V! V!c                (    | j                   t           S r,   rS   rV   rv   s    r1   n_frameszImImageFile.n_frames  s    yy      c                .    | j                   t           dkD  S )Nr   r   r   s    r1   is_animatedzImImageFile.is_animated  s    yy 1$$r   c                   | 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                  | _        t        j                  dd| j                  z   || j                  ddf      g| _        y )	Nr   r   rE   r      rK   rI   r>   )_seek_checkro   rk   rY   rt   rq   rr   rO   r   rs   rW   ru   )rv   ro   r   rt   r   s        r1   rR   zImImageFile.seek"  s    &
99Ds499~%D1$q(Q.$))A,>}}ut|+(( OOE6DII#5tdllAr=RS
	r   c                    | j                   S r,   )ro   r   s    r1   rp   zImImageFile.tell6  s    zzr   N)returnNone)r   r-   )r   bool)ro   r-   r   r   )__name__
__module____qualname__formatformat_description!_close_exclusive_fp_after_loadingr   propertyr   r   rR   rp    r   r1   r4   r4   v   sL    F-(-%]~ ! ! % %
(r   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   c                   	 t         | j                     \  }}| j                  j                  dd      }|j                  d| dj                  d             |rt        |t              r|j                  d      }t        j                  j                  t        j                  j                  |            \  }}	dj                  |d d	t!        |	      z
   |	g      }|j                  d
| dj                  d             |j                  d| j"                  d    d| j"                  d    d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.                  | |t-        j0                  dd| j"                  z   d|dd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
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   r   rC   rK   rI   r>   )SAVErk   KeyErrorr.   encoderinfogetwriteencode
isinstancebytesr_   ospathsplitextbasenamejoinrY   rt   rp   im
getpaletterj   r   _savers   )r   rO   filename
image_typerW   rz   rw   r   nameext
im_palettecolorsrn   r   s                 r1   r   r   S  sS   %"277m
G
 ^^!,FHH|J<z299'BC
 h&w/HGG$$RWW%5%5h%?@	cww_rCH}-s34
6$t$++G45HH!"''!*Qrwwqzl$?FFwOP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 	OO
B(8!gq"=MNO?  %RWWI]3o1$%s   I" "	J+JJz.im)r0   r   r   r/   )r   zImage.ImagerO   z	IO[bytes]r   zstr | bytesr   r   )#
__future__r   r   r\   typingr   r   r   r   r   r	   rd   DATE	EQUIPMENTrV   ri   NAMEr`   rU   rT   rf   rc   r   rj   jcompilerZ   r2   r4   r   r   register_openr   register_saveregister_extensionr   r   r1   <module>r      s4  6 # 	 	  , ,
 &		# 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:A)%% AV 
	
	
		!($X   K&& 4   K&& .   ++U 3r   