Ë
    ™2Úiä  ã                   óp   — d dl Z ddlmZmZmZmZ  G d„ d«      Zd„ Zd„ Zd„ Z	dd	„Z
dd
„Zdd„Zdd„Zd„ Zy)é    Né   )ÚGimpGradientFileÚGimpPaletteFileÚ
ImageColorÚPaletteFilec                   ó¤   — e Zd ZdZdd„Zed„ «       Zej                  d„ «       Zed„ «       Zej                  d„ «       Zd„ Z	d	„ Z
d
„ ZeZdd„Zd„ Zy)ÚImagePalettea¥  
    Color palette for palette mapped images

    :param mode: The mode to use for the palette. See:
        :ref:`concept-modes`. Defaults to "RGB"
    :param palette: An optional palette. If given, it must be a bytearray,
        an array or a list of ints between 0-255. The list must consist of
        all channels for one color followed by the next color (e.g. RGBRGBRGB).
        Defaults to an empty palette.
    Nc                 óT   — || _         d | _        |xs
 t        «       | _        d | _        y ©N)ÚmodeÚrawmodeÚ	bytearrayÚpaletteÚdirty)Úselfr   r   s      úG/var/www/html/acx/venv/lib/python3.12/site-packages/PIL/ImagePalette.pyÚ__init__zImagePalette.__init__$   s%   € ØˆŒ	ØˆŒØÒ-¤)£+ˆŒØˆ�
ó    c                 ó   — | j                   S r   )Ú_palette©r   s    r   r   zImagePalette.palette*   s   € à�}‰}Ðr   c                 ó    — d | _         || _        y r   )Ú_colorsr   )r   r   s     r   r   zImagePalette.palette.   s   € àˆŒØˆ�r   c                 ó,  — | j                   €}t        | j                  «      }i | _         t        dt        | j                  «      |«      D ]>  }t        | j                  |||z    «      }|| j                   v rŒ-||z  | j                   |<   Œ@ | j                   S )Nr   )r   Úlenr   Úranger   Útuple)r   Úmode_lenÚiÚcolors       r   ÚcolorszImagePalette.colors3   s‡   € à�<‰<ÐÜ˜4Ÿ9™9“~ˆHØˆDŒLÜ˜1œc $§,¡,Ó/°Ó:ò 4�Ü˜dŸl™l¨1¨q°8©|Ð<Ó=�Ø˜DŸL™LÑ(ØØ&'¨8¡m�—‘˜UÒ#ð	4ð
 �|‰|Ðr   c                 ó   — || _         y r   )r   )r   r!   s     r   r!   zImagePalette.colors?   s	   € àˆ�r   c                 óÀ   — t        «       }| j                  |_        | j                  |_        | j                  �| j                  d d  |_        | j                  |_        |S r   )r	   r   r   r   r   )r   Únews     r   ÚcopyzImagePalette.copyC   sH   € Ü‹nˆà—9‘9ˆŒØ—l‘lˆŒØ�<‰<Ð#ØŸ,™,¡q˜/ˆCŒKØ—J‘JˆŒ	àˆ
r   c                 ó‚   — | j                   r| j                   | j                  fS | j                  | j                  «       fS )z£
        Get palette contents in format suitable for the low-level
        ``im.putpalette`` primitive.

        .. warning:: This method is experimental.
        )r   r   r   Útobytesr   s    r   ÚgetdatazImagePalette.getdataN   s3   € ð �<Š<Ø—<‘< §¡Ð-Ð-Ø�y‰y˜$Ÿ,™,›.Ð(Ð(r   c                 óà   — | j                   rd}t        |«      ‚t        | j                  t        «      r| j                  S t        j
                  d| j                  «      }|j                  «       S )zUConvert palette to bytes.

        .. warning:: This method is experimental.
        ú!palette contains raw palette dataÚB)r   Ú
ValueErrorÚ
isinstancer   ÚbytesÚarrayr'   )r   ÚmsgÚarrs      r   r'   zImagePalette.tobytesY   sR   € ð
 �<Š<Ø5ˆCÜ˜S“/Ð!Ü�d—l‘l¤EÔ*Ø—<‘<ÐÜ�k‰k˜#˜tŸ|™|Ó,ˆØ�{‰{‹}Ðr   c           	      ó|  — | j                   rd}t        |«      ‚t        |t        «      rj| j                  dk(  r)t        |«      dk(  r=|d   dk7  rd}t        |«      ‚|dd }n"| j                  dk(  rt        |«      dk(  r|d	z  }	 | j                  |   S dt'        |«      › �}t        |«      ‚# t        $ �r„}t        | j                  t        «      st        | j                  «      | _
        t        | j                  «      dz  }d
}|r6|j                  j                  d«      |j                  j                  d«      f}||v r
|dz  }||v rŒ
|dk\  rV|rAt        t        t        |j!                  «       «      «      «      D ]  \  }}|dk(  sŒ||vsŒ|} n |dk\  rd}t        |«      |‚|| j                  |<   |dz  t        | j                  «      k  r:| j                  d|dz   t#        |«      z   | j                  |dz  dz   d z   | _
        n| xj                  t#        |«      z  c_
        d| _        |cY d}~S d}~ww xY w)zgGiven an rgb tuple, allocate palette entry.

        .. warning:: This method is experimental.
        r*   ÚRGBé   é   éÿ   z/cannot add non-opaque RGBA color to RGB paletteNÚRGBA)r6   © Ú
backgroundÚtransparencyr   é   r   z$cannot allocate more than 256 colorszunknown color specifier: )r   r,   r-   r   r   r   r!   ÚKeyErrorr   r   r   ÚinfoÚgetÚreversedÚlistÚ	enumerateÚ	histogramr.   r   Úrepr)	r   r    Úimager0   ÚeÚindexÚspecial_colorsr   Úcounts	            r   ÚgetcolorzImagePalette.getcolori   s(  € ð
 �<Š<Ø5ˆCÜ˜S“/Ð!Ü�eœUÔ#Ø�y‰y˜EÒ!Ü�u“: ’?Ø˜Q‘x 3’ØO˜Ü(¨›oÐ-Ø! " 1˜I‘EØ—‘˜fÒ$Ü�u“: ’?Ø˜V‘O�Eð#Ø—{‘{ 5Ñ)Ð)ðH .¬d°5«k¨]Ð;ˆCÜ˜S“/Ð!øôI ó !ä! $§,¡,´	Ô:Ü$-¨d¯l©lÓ$;�D”MÜ˜DŸL™LÓ)¨QÑ.�Ø!#�ÙàŸ
™
Ÿ™ |Ó4ØŸ
™
Ÿ™ ~Ó6ð&�Nð ˜~Ñ-Ø˜Q‘J�Eð ˜~Ò-à˜C’<Ùä(0´´iÀÇÁÓ@QÓ6RÓ1SÓ(Tò &™H˜A˜uØ$¨›z¨a°~Ò.EØ() Ù %ð&ð  ’|ØD˜Ü(¨›o°1Ð4Ø%*�—‘˜EÑ"Ø˜1‘9œs 4§<¡<Ó0Ò0àŸ™ [ u¨q¡yÐ1Ü ›,ñ'àŸ,™, u¨q¡y°1¡} Ð7ñ8ð •Mð —M’M¤U¨5£\Ñ1•MØ�”
Ø•ûðC!ús2   ÂB- Â-
H;Â7BH6Å=H6Æ	H6ÆB"H6È0H;È6H;c                 óX  — | j                   rd}t        |«      ‚t        |t        «      rt	        |d«      }|j                  d«       |j                  d| j                  › d�«       t        d«      D ]‡  }|j                  |› «       t        |t        | j                  «      z  |dz   t        | j                  «      z  «      D ]$  }	 |j                  d| j                  |   › �«       Œ& |j                  d«       Œ‰ |j                  «        y
# t        $ r |j                  d	«       Y Œgw xY w)zVSave palette to text file.

        .. warning:: This method is experimental.
        r*   Úwz
# Palette
z# Mode: ú
r;   r   ú z 0N)r   r,   r-   ÚstrÚopenÚwriter   r   r   r   Ú
IndexErrorÚclose)r   Úfpr0   r   Újs        r   ÚsavezImagePalette.save£   sþ   € ð
 �<Š<Ø5ˆCÜ˜S“/Ð!Ü�bœ#ÔÜ�b˜#“ˆBØ
�‰�ÔØ
�‰�8˜DŸI™I˜; bÐ)Ô*Ü�s“ò 	ˆAØ�H‰H˜�sÔÜ˜1œs 4§9¡9›~Ñ-°°A±¼¸T¿Y¹Y»Ñ/GÓHò #�ð#Ø—H‘H˜q §¡¨a¡Ð 1Ð2Õ3ð#ð
 �H‰H�T�Nð	ð 	�‰�
øô "ò #Ø—H‘H˜T–Nð#ús   Ã!DÄD)Ä(D))r3   Nr   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úpropertyr   Úsetterr!   r%   r(   r'   ÚtostringrI   rU   r8   r   r   r	   r	      s…   „ ñ	óð ñó ðð ‡^�^ñ ó ð ð ñ	ó ð	ð ‡]�]ñó ðò	ò	)òð €Hó8"ótr   r	   c                 óD   — t        «       }| |_        ||_        d|_        |S )Nr   )r	   r   r   r   )r   Údatar   s      r   Úrawr_   ¾   s#   € Ü‹n€GØ€G„OØ€G„OØ€G„MØ€Nr   c                 ón   — g }| dk(  r)t        d«      D ]  }|j                  ||z  dz  «       Œ |S t        ‚)Nr   r;   r6   )r   ÚappendÚNotImplementedError)ÚblackÚwhiteÚlutr   s       r   Úmake_linear_lutrf   Ê   sE   € Ø
€CØ�‚zÜ�s“ò 	)ˆAØ�J‰J�u˜q‘y CÑ'Õ(ð	)ð €Jô "Ð!r   c                 óv   — g }t        d«      D ](  }|j                  t        |dz  | z  dz  dz   «      «       Œ* |S )Nr;   g     ào@g      à?)r   ra   Úint)Úexpre   r   s      r   Úmake_gamma_lutrj   Ô   sC   € Ø
€CÜ�3‹Zò <ˆØ�
‰
”3˜˜U™ sÑ*¨eÑ3°cÑ9Ó:Õ;ð<à€Jr   c           
      ó¸   — t        t        dt        | «      z  «      «      }|j                  «        t	        | |D �cg c]  }|t        | «      z  ‘Œ c}«      S c c}w ©Nr;   )r@   r   r   Úreverser	   ©r   r   r   s      r   Únegativero   Û   sF   € Ü”5˜œs 4›y™Ó)Ó*€GØ‡O�OÔÜ˜°wÖ?°!˜q¤C¨£I›~Ò?Ó@Ð@ùÒ?s   »A
c                 ó’   — ddl m} g }t        dt        | «      z  «      D ]  }|j	                   |dd«      «       Œ t        | |«      S )Nr   )Úrandintr;   r6   )Úrandomrq   r   r   ra   r	   )r   rq   r   r   s       r   rr   rr   á   sE   € Ýà€GÜ�3œ˜T›‘?Ó#ò (ˆØ�‰‘w˜q #“Õ'ð(ä˜˜gÓ&Ð&r   c           	      óÌ   — t        j                  | «      D �cg c]  }t        d|«      ‘Œ }}t        dt	        d«      D �cg c]  }||dz     |dz     ‘Œ c}«      S c c}w c c}w )Nr   r3   i   r5   )r   Úgetrgbrf   r	   r   )rd   ÚbandÚbandsr   s       r   Úsepiarw   ê   s]   € Ü2<×2CÑ2CÀEÓ2JÖK¨$Œ_˜Q Õ%ÐK€EÐKÜ˜¼eÀG»nÖM¸  a¨!¡e¡¨Q°!©VÓ 4ÒMÓNÐNùò LùÚMs   ˜AÁ A!
c           
      ó˜   — t        t        dt        | «      z  «      «      }t        | |D �cg c]  }|t        | «      z  ‘Œ c}«      S c c}w rl   )r@   r   r   r	   rn   s      r   Úwedgery   ï   s<   € Ü”5˜œs 4›y™Ó)Ó*€GÜ˜°wÖ?°!˜q¤C¨£I›~Ò?Ó@Ð@ùÒ?s   «A
c                 óP  — t        | d«      5 }t        j                  t        j                  t        j                  fD ].  }	 |j	                  d«        ||«      j                  «       }|r nŒ0 d}t        |«      ‚	 d d d «       |S # t        t        f$ r Y ŒZw xY w# 1 sw Y   S xY w)NÚrbr   zcannot load palette)	rO   r   r   r   ÚseekÚ
getpaletteÚSyntaxErrorr,   ÚOSError)ÚfilenamerS   ÚpaletteHandlerre   r0   s        r   Úloadr‚   ô   s¹   € ô 
ˆh˜Ó	ð  ä×+Ñ+Ü×-Ñ-Ü×#Ñ#ð
ò 	ˆNð
Ø—‘˜”
Ù$ RÓ(×3Ñ3Ó5�ÙÙð ð	ð (ˆCÜ˜#“,Ðð ÷ð& €Jøô  ¤Ð,ò ñ ðú÷ð& €Jús/   �3BÁ)BÁ*BÂBÂBÂBÂBÂB%)r3   )z#fff0c0)r/   Ú r   r   r   r   r	   r_   rf   rj   ro   rr   rw   ry   r‚   r8   r   r   ú<module>r„      sH   ðó& ç HÓ H÷_ñ _òLòòóAó'óOó
Aó
r   