
    (ph[*                       % S SK Jr  S SKrS SKrS SKJr  SSKJr  S\S'    S SK	J
r
  S	r\
" 5       r\R                  \5        \R&                  " \5      r\(       a  SSKJr   " S S5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r  " S S\5      r! " S  S!\5      r"0 S"\_S#\_S$\_S%\_S&\_S'\_S(\_S)\_S*\_S+\_S,\_S-\_S.\_S/\_S0\_S1\"_S2\ _r#\RH                  S3:X  a  \\#S4'   \\#S5'   \\#S6'   \ \#S7'   \!\#S8'   O\\#S4'   \\#S5'   \\#S6'   \!\#S7'   \ \#S8'   S:S;S9 jjrg! \ a%  rSS
KJr  \R$                  " \5      =r
r SrCGN=SrCff = f)<    )annotationsN)TYPE_CHECKING   )	deprecatetypeFFI)r   z|
    struct Pixel_RGBA {
        unsigned char r,g,b,a;
    };
    struct Pixel_I16 {
        unsigned char l,r;
    };
    )DeferredError)Imagec                      \ rS rSrSSS jjrSS jr      SS jrSS jr\r\r	SS jr
SS jr        SS jrS	rg
)PyAccess8   c                   [        SS5        [        UR                  R                  5      nX l        [
        R                  SUS   5      U l        [
        R                  SUS   5      U l        [
        R                  SUS   5      U l	        UR                  R                  u  U l        U l        Xl        UR                  U l        U R                  R                  S;   a  UR                   U l        U R%                  5         g )	Nr      zunsigned char **image8zint **image32imagePPA)r   dictimunsafe_ptrsreadonlyfficastr   r   r   sizexsizeysize_img_immodepalette_palette
_post_init)selfimgr   valss       ?/var/www/html/venv/lib/python3.13/site-packages/PIL/PyAccess.py__init__PyAccess.__init__9   s    *b!CFF&&' hh14>Bxx$y/:XX0$w-@
!$
DJ	 6688==K'KKDM
 	    c                    g N )r%   s    r(   r$   PyAccess._post_initM   s    r+   c                b   U R                   (       a  Sn[        U5      eUu  pEUS:  a  U R                  U-   nUS:  a  U R                  U-   nU R	                  XE45      u  pEU R
                  R                  S;   a  [        U[        [        45      (       a  [        U5      S;   az  U R
                  R                  S:X  a  [        U5      S:X  a  US   OSnUS	S nU R                  R                  X R                  5      nU R
                  R                  S:X  a  UW4OUnU R                  XEU5      $ )
aD  
Modifies the pixel at x,y. The color is given as a single
numerical value for single band images, and a tuple for
multi-band images. In addition to this, RGB and RGBA tuples
are accepted for P and PA images.

:param xy: The pixel coordinate, given as (x, y). See
   :ref:`coordinate-system`.
:param color: The pixel value.
z%Attempt to putpixel a read only imager   r   )      r   r2   r1      N)r   
ValueErrorr   r   check_xyr    r!   
isinstancelisttuplelenr#   getcolorr   	set_pixel)r%   xycolormsgxyalphapalette_indexs           r(   __setitem__PyAccess.__setitem__P   s     ==9CS/!q5

QAq5

QAv& HHMM[(54-00E
f$ xx}}$$'J!Oabq	 MM225))DM.2hhmmt.C]E*E~~aE**r+   c                    Uu  p#US:  a  U R                   U-   nUS:  a  U R                  U-   nU R                  X#45      u  p#U R                  X#5      $ )a1  
Returns the pixel at x,y. The pixel is returned as a single
value for single band images or a tuple for multiple band
images

:param xy: The pixel coordinate, given as (x, y). See
  :ref:`coordinate-system`.
:returns: a pixel value for single band images, a tuple of
  pixel values for multiband images.
r   )r   r   r5   	get_pixel)r%   r<   r?   r@   s       r(   __getitem__PyAccess.__getitem__w   sT     q5

QAq5

QAv&~~a##r+   c                    Uu  p#SUs=::  a  U R                   :  a  O  OSUs=::  a  U R                  :  d  O  Sn[        U5      eU$ )Nr   zpixel location out of range)r   r   r4   )r%   r<   r?   r@   r>   s        r(   r5   PyAccess.check_xy   s>    Q##Q(;(;/CS/!	r+   c                    [        5       er-   NotImplementedErrorr%   r?   r@   s      r(   rF   PyAccess.get_pixel   s    !##r+   c                    [        5       er-   rL   r%   r?   r@   r=   s       r(   r;   PyAccess.set_pixel   s     "##r+   )	r    r   r#   r   r   r   r   r   r   NF)r&   Image.Imager   boolreturnNone)rV   rW   )r<   tuple[int, int] | list[int]r=   #float | tuple[int, ...] | list[int]rV   rW   )r<   rX   rV   float | tuple[int, ...])r<   tuple[int, int]rV   r[   )r?   intr@   r\   rV   rZ   )r?   r\   r@   r\   r=   rY   rV   rW   )__name__
__module____qualname____firstlineno__r)   r$   rC   rG   putpixelgetpixelr5   rF   r;   __static_attributes__r.   r+   r(   r   r   8   sn    (%+'%+ 3%+ 
	%+N$& HH$$$$%H$	$r+   r   c                  .    \ rS rSrSrS rSS jrS rSrg)	_PyAccess32_2   z7PA, LA, stored in first and last bytes of a 32 bit wordc                N    [         R                  SU R                  5      U l        g Nzstruct Pixel_RGBA **r   r   r   pixelsr%   argskwargss      r(   r$   _PyAccess32_2._post_init       hh5t||Dr+   c                V    U R                   U   U   nUR                  UR                  4$ r-   )rj   rar%   r?   r@   pixels       r(   rF   _PyAccess32_2.get_pixel   s'    Aq!wwr+   c                x    U R                   U   U   n[        US   S5      Ul        [        US   S5      Ul        g )Nr   r3   r   )rj   minrq   rr   r%   r?   r@   r=   rt   s        r(   r;   _PyAccess32_2.set_pixel   s8    Aq!eAh$eAh$r+   rj   N)r?   r\   r@   r\   rV   r[   	r]   r^   r_   r`   __doc__r$   rF   r;   rc   r.   r+   r(   re   re      s    AE %r+   re   c                  .    \ rS rSrSrS rSS jrS rSrg)	_PyAccess32_3   zARGB and friends, stored in the first three bytes of a 32 bit wordc                N    [         R                  SU R                  5      U l        g rh   ri   rk   s      r(   r$   _PyAccess32_3._post_init   ro   r+   c                l    U R                   U   U   nUR                  UR                  UR                  4$ r-   )rj   rq   gbrs   s       r(   rF   _PyAccess32_3.get_pixel   s-    Aq!ww((r+   c                    U R                   U   U   n[        US   S5      Ul        [        US   S5      Ul        [        US   S5      Ul        SUl        g )Nr   r3   r      rj   rw   rq   r   r   rr   rx   s        r(   r;   _PyAccess32_3.set_pixel   sQ    Aq!eAh$eAh$eAh$r+   rz   N)r?   r\   r@   r\   rV   ztuple[int, int, int]r{   r.   r+   r(   r~   r~      s    KE)r+   r~   c                  .    \ rS rSrSrS rSS jrS rSrg)	_PyAccess32_4   z&RGBA etc, all 4 bytes of a 32 bit wordc                N    [         R                  SU R                  5      U l        g rh   ri   rk   s      r(   r$   _PyAccess32_4._post_init   ro   r+   c                    U R                   U   U   nUR                  UR                  UR                  UR                  4$ r-   )rj   rq   r   r   rr   rs   s       r(   rF   _PyAccess32_4.get_pixel   s3    Aq!ww%''11r+   c                    U R                   U   U   n[        US   S5      Ul        [        US   S5      Ul        [        US   S5      Ul        [        US   S5      Ul        g )Nr   r3   r   r   r1   r   rx   s        r(   r;   _PyAccess32_4.set_pixel   s\    Aq!eAh$eAh$eAh$eAh$r+   rz   N)r?   r\   r@   r\   rV   ztuple[int, int, int, int]r{   r.   r+   r(   r   r      s    0E2%r+   r   c                  .    \ rS rSrSrS rSS jrS rSrg)	
_PyAccess8   z%1, L, P, 8 bit images stored as uint8c                &    U R                   U l        g r-   )r   rj   rk   s      r(   r$   _PyAccess8._post_init   s    kkr+   c                &    U R                   U   U   $ r-   rz   rN   s      r(   rF   _PyAccess8.get_pixel       {{1~a  r+   c                     [        US5      U R                  U   U'   g ! [         a"    [        US   S5      U R                  U   U'    g f = f)Nr3   r   rw   rj   	TypeErrorrQ   s       r(   r;   _PyAccess8.set_pixel   sK    	3 #E3DKKN1 	3 #E!Hc 2DKKN1	3    )A
Arz   Nr?   r\   r@   r\   rV   r\   r{   r.   r+   r(   r   r      s    /"!3r+   r   c                  .    \ rS rSrSrS rSS jrS rSrg)	_PyAccessI16_N   z0I;16 access, native bitendian without conversionc                N    [         R                  SU R                  5      U l        g )Nzunsigned short **r   r   r   rj   rk   s      r(   r$   _PyAccessI16_N._post_init   s    hh2DJJ?r+   c                &    U R                   U   U   $ r-   rz   rN   s      r(   rF   _PyAccessI16_N.get_pixel   r   r+   c                     [        US5      U R                  U   U'   g ! [         a"    [        US   S5      U R                  U   U'    g f = f)N  r   r   rQ   s       r(   r;   _PyAccessI16_N.set_pixel   sL    	5 #E5 1DKKN1 	5 #E!He 4DKKN1	5r   rz   Nr   r{   r.   r+   r(   r   r      s    :@!5r+   r   c                  .    \ rS rSrSrS rSS jrS rSrg)	_PyAccessI16_L   zI;16L access, with conversionc                N    [         R                  SU R                  5      U l        g Nzstruct Pixel_I16 **r   rk   s      r(   r$   _PyAccessI16_L._post_init       hh4djjAr+   c                ^    U R                   U   U   nUR                  UR                  S-  -   $ N   rj   lrq   rs   s       r(   rF   _PyAccessI16_L.get_pixel   s+    Aq!ww3&&r+   c                    U R                   U   U   n [        US5      nUS-  Ul        US-	  Ul        g ! [         a    [        US   S5      n N0f = f)Nr   r   r3      )rj   rw   r   r   rq   rx   s        r(   r;   _PyAccessI16_L.set_pixel  s^    Aq!	)u%E $,1*	  	)a%(E	)   5 AArz   Nr   r{   r.   r+   r(   r   r      s    'B'r+   r   c                  .    \ rS rSrSrS rSS jrS rSrg)	_PyAccessI16_Bi  zI;16B access, with conversionc                N    [         R                  SU R                  5      U l        g r   r   rk   s      r(   r$   _PyAccessI16_B._post_init  r   r+   c                ^    U R                   U   U   nUR                  S-  UR                  -   $ r   r   rs   s       r(   rF   _PyAccessI16_B.get_pixel  s+    Aq!ww}uww&&r+   c                    U R                   U   U   n [        US5      nUS-	  Ul        US-  Ul        g ! [         a    [        US   S5      n N0f = f)Nr   r   r   r3   )rj   rw   	Exceptionr   rq   rx   s        r(   r;   _PyAccessI16_B.set_pixel  s^    Aq!	)u%E 1*$,	  	)a%(E	)r   rz   Nr   r{   r.   r+   r(   r   r     s    'B'r+   r   c                  .    \ rS rSrSrS rSS jrS rSrg)	_PyAccessI32_Ni"  z"Signed Int32 access, native endianc                &    U R                   U l        g r-   r   rj   rk   s      r(   r$   _PyAccessI32_N._post_init%      llr+   c                &    U R                   U   U   $ r-   rz   rN   s      r(   rF   _PyAccessI32_N.get_pixel(  r   r+   c                &    X0R                   U   U'   g r-   rz   rQ   s       r(   r;   _PyAccessI32_N.set_pixel+  s    !Aqr+   rz   Nr   r{   r.   r+   r(   r   r   "  s    ,#!"r+   r   c                  4    \ rS rSrSrS rS rS	S jrS rSr	g)
_PyAccessI32_Swapi/  z,I;32L/B access, with byteswapping conversionc                &    U R                   U l        g r-   r   rk   s      r(   r$   _PyAccessI32_Swap._post_init2  r   r+   c                    [         R                  SU5      n[         R                  SU5      nUS   US   US   US   4u  US'   US'   US'   US'   [         R                  SU5      S   $ )Nzint *zunsigned char *r1   r   r   r   )r   newr   )r%   iorigcharss       r(   reverse_PyAccessI32_Swap.reverse5  sq    www"*D116q58U1XuUVx1W.a%(E!HeAhxx'**r+   c                D    U R                  U R                  U   U   5      $ r-   r   rj   rN   s      r(   rF   _PyAccessI32_Swap.get_pixel;  s    ||DKKN1-..r+   c                F    U R                  U5      U R                  U   U'   g r-   r   rQ   s       r(   r;   _PyAccessI32_Swap.set_pixel>  s     LL/Aqr+   rz   Nr   )
r]   r^   r_   r`   r|   r$   r   rF   r;   rc   r.   r+   r(   r   r   /  s    6#+/0r+   r   c                  .    \ rS rSrSrS rSS jrS rSrg)	
_PyAccessFiB  z32 bit float accessc                N    [         R                  SU R                  5      U l        g )Nzfloat **ri   rk   s      r(   r$   _PyAccessF._post_initE  s    hhz4<<8r+   c                &    U R                   U   U   $ r-   rz   rN   s      r(   rF   _PyAccessF.get_pixelH  r   r+   c                r     X0R                   U   U'   g ! [         a    US   U R                   U   U'    g f = f)Nr   )rj   r   rQ   s       r(   r;   _PyAccessF.set_pixelK  s<    	) %KKN1 	) %aDKKN1	)s    66rz   N)r?   r\   r@   r\   rV   floatr{   r.   r+   r(   r   r   B  s    9!)r+   r   1Lr   zI;16NLALar   RGBLABHSVYCbCrRGBARGBaRGBXCMYKFIlittlezI;16zI;16LzI;16BzI;32LzI;32Bc                    [         R                  U R                  S 5      nU(       d!  [        R	                  SU R                  5        g U" X5      $ )NzPyAccess Not Implemented: %s)mode_mapgetr!   loggerdebug)r&   r   access_types      r(   r   r   x  s:    ,,sxx.K3SXX>s%%r+   rS   )r&   rT   r   rU   rV   zPyAccess | None)%
__future__r   loggingsystypingr   
_deprecater   __annotations__cffir   defsr   cdefImportErrorex_utilr	   r   	getLoggerr]   r    r
   r   re   r~   r   r   r   r   r   r   r   r   r   	byteorderr.   r+   r(   <module>r     sN  * #  
   !		&D %CHHTN 
		8	$b$ b$J%H %"H &%H %&3 3$5X 5$X *X *
"X 
"0 0&) )$  ^	
 	- 	- 	- 
= 
= 
= ] M M M M  !" #( ==H%HV&HW&HW&HW)HW%HV&HW&HW)HW&HW&[
  & %!!"%%C#&s    E FE??F