ó
    jñ:i1#  ã                  óÚ   • S SK Jr  S SKrS SKJr  S SKJr  SSKJrJ	r	J
r
Jr  Sr\(       a  SSKJr   " S	 S
5      rSS jrSS jrSS jrSSS jjrSSS jjrSSS jjrSSS jjrSS jrg)é    )ÚannotationsN)ÚSequence)ÚIOé   )ÚGimpGradientFileÚGimpPaletteFileÚ
ImageColorÚPaletteFileF)ÚImagec                  ó  • \ rS rSrSr  S     SS jjr\SS j5       r\R                  SS j5       r\SS j5       r	\	R                  SS j5       r	SS	 jr
SS
 jrSS jr\r S     SS jjr S     SS jjrSS jrSrg)ÚImagePaletteé   a…  
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                ó\   • Xl         S U l        U=(       d
    [        5       U l        S U l        g ©N)ÚmodeÚrawmodeÚ	bytearrayÚpaletteÚdirty)Úselfr   r   s      ÚS/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/PIL/ImagePalette.pyÚ__init__ÚImagePalette.__init__+   s%   € ð
 Œ	Ø#'ˆŒØ×-¤)£+ˆŒØ!%ˆ�
ó    c                ó   • U R                   $ r   )Ú_palette©r   s    r   r   ÚImagePalette.palette5   s   € à�}‰}Ðr   c                ó   • S U l         Xl        g r   )Ú_colorsr   )r   r   s     r   r   r   9   s   € à:>ˆŒØ�r   c                ó2  • U R                   c  [        U R                  5      n0 U l         [        S[        U R                  5      U5       H?  n[        U R                  X"U-    5      nX0R                   ;   a  M.  X!-  U R                   U'   MA     U R                   $ )Nr   )r    Úlenr   Úranger   Útuple)r   Úmode_lenÚiÚcolors       r   ÚcolorsÚImagePalette.colors>   s|   € à�<‰<ÑÜ˜4Ÿ9™9“~ˆHØˆDŒLÜ˜1œc $§,¡,Ó/°Ö:�Ü˜dŸl™l¨1°8©|Ð<Ó=�ØŸL™LÓ(ÙØ&'¡m�—‘˜UÓ#ñ	 ;ð
 �|‰|Ðr   c                ó   • Xl         g r   )r    )r   r(   s     r   r(   r)   J   s   € à�r   c                óÂ   • [        5       nU R                  Ul        U R                  Ul        U R                  b  U R                  S S  Ul        U R                  Ul        U$ r   )r   r   r   r   r   )r   Únews     r   ÚcopyÚImagePalette.copyN   sH   € Ü‹nˆà—9‘9ˆŒØ—l‘lˆŒØ�<‰<Ñ#ØŸ,™,¡q˜/ˆCŒKØ—J‘JˆŒ	àˆ
r   c                óŒ   • U R                   (       a  U R                   U R                  4$ U R                  U R                  5       4$ )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   ÚgetdataÚImagePalette.getdataY   s3   € ð �<�<Ø—<‘< §¡Ð-Ð-Ø�y‰y˜$Ÿ,™,›.Ð(Ð(r   c                óö   • U R                   (       a  Sn[        U5      e[        U R                  [        5      (       a  U R                  $ [
        R
                  " SU R                  5      nUR                  5       $ )zEConvert palette to bytes.

.. warning:: This method is experimental.
ú!palette contains raw palette dataÚB)r   Ú
ValueErrorÚ
isinstancer   ÚbytesÚarrayr0   )r   ÚmsgÚarrs      r   r0   ÚImagePalette.tobytesd   sU   € ð
 �<�<Ø5ˆCÜ˜S“/Ð!Ü�d—l‘l¤E×*Ñ*Ø—<‘<ÐÜ�kŠk˜#˜tŸ|™|Ó,ˆØ�{‰{‹}Ðr   c                ó  • [        U R                  [        5      (       d  [        U R                  5      U l        [	        U R                  5      S-  nSnU(       aG  UR
                  R                  S5      UR
                  R                  S5      4nX4;   a  US-  nX4;   a  M  US:¼  a`  U(       aE  [        [        [        UR                  5       5      5      5       H  u  pVUS:X  d  M  XT;  d  M  Un  O   US:¼  a  Sn[        U5      UeU$ )	Né   © Ú
backgroundÚtransparencyr   é   r   z$cannot allocate more than 256 colors)r7   r   r   r   r"   ÚinfoÚgetÚreversedÚlistÚ	enumerateÚ	histogramr6   )r   ÚimageÚeÚindexÚspecial_colorsr&   Úcountr:   s           r   Ú_new_color_indexÚImagePalette._new_color_indext   sà   € ô ˜$Ÿ,™,¬	×2Ñ2Ü% d§l¡lÓ3ˆDŒMÜ�D—L‘LÓ! QÑ&ˆØCEˆÞà—
‘
—‘˜|Ó,Ø—
‘
—‘˜~Ó.ðˆNð Ó)Ø˜‘
�ð Õ)à�C‹<Þä (¬¬i¸¿¹Ó8IÓ.JÓ)KÖ L‘H�AØ •z aÕ&=Ø !˜Ùñ !Mð ˜‹|Ø<�Ü  “o¨1Ð,Øˆr   c                ó   • U R                   (       a  Sn[        U5      e[        U[        5      (       ao  U R                  S:X  a+  [        U5      S:X  a  US   S:w  a  Sn[        U5      eUSS nO$U R                  S:X  a  [        U5      S:X  a  US	-  n U R                  U   $ S[        U5       3n[        U5      e! [         aÇ  nU R                  X$5      n[        U R                  [        5      (       d   eXPR                  U'   US-  [        U R                  5      :  a:  U R                  SUS-   [        U5      -   U R                  US-  S-   S -   U l	        OU =R                  [        U5      -  sl	        S
U l        Us SnA$ SnAff = f)zWGiven an rgb tuple, allocate palette entry.

.. warning:: This method is experimental.
r4   ÚRGBé   r>   éÿ   z/cannot add non-opaque RGBA color to RGB paletteNÚRGBA)rS   r   zunknown color specifier: )r   r6   r7   r$   r   r"   r(   ÚKeyErrorrN   r   r   r   r8   r   Úrepr)r   r'   rI   r:   rJ   rK   s         r   ÚgetcolorÚImagePalette.getcolorŽ   sn  € ð �<�<Ø5ˆCÜ˜S“/Ð!Ü�eœU×#Ñ#Ø�y‰y˜EÓ!Ü�u“: “?Ø˜Q‘x 3“ØO˜Ü(¨›oÐ-Ø! " 1˜I�EøØ—‘˜fÓ$Ü�u“: “?Ø˜V‘O�EðØ—{‘{ 5Ñ)Ð)ð" .¬d°5«k¨]Ð;ˆCÜ˜S“/Ð!øô# ó à×-Ñ-¨eÓ7�Ü! $§-¡-´×;Ñ;Ð;Ð;Ø%*—‘˜EÑ"Ø˜1‘9œs 4§<¡<Ó0Ó0àŸ™ k¨°©	Ð2Ü ›,ñ'àŸ-™-¨°©	°A©¨Ð8ñ9ð •Mð —M’M¤U¨5£\Ñ1•MØ�”
Ø•ûðús   ÂB< Â<
FÃB<FÆFÆFc                óx  • U R                   (       a  Sn[        U5      e[        U[        5      (       a  [	        US5      nUR                  S5        UR                  SU R                   S35        [        S5       HŠ  nUR                  U 5        [        U[        U R                  5      -  US-   [        U R                  5      -  5       H%  n UR                  SU R                  U    35        M'     UR                  S5        MŒ     UR                  5         g
! [         a    UR                  S	5         Mm  f = f)zFSave palette to text file.

.. warning:: This method is experimental.
r4   Úwz
# Palette
z# Mode: Ú
rB   r   Ú z 0N)r   r6   r7   ÚstrÚopenÚwriter   r#   r"   r   Ú
IndexErrorÚclose)r   Úfpr:   r&   Újs        r   ÚsaveÚ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ñ Ið
 �H‰H�TŽNñ ð 	�‰�
øô "ó #Ø—H‘H˜T—Nð#ús   Ã!DÄD9Ä8D9)r    r   r   r   r   r   )rQ   N)r   r]   r   z(Sequence[int] | bytes | bytearray | NoneÚreturnÚNone)rf   ú!Sequence[int] | bytes | bytearray)r   rh   rf   rg   )rf   údict[tuple[int, ...], int])r(   ri   rf   rg   )rf   r   )rf   z-tuple[str, Sequence[int] | bytes | bytearray])rf   r8   )NN)rI   úImage.Image | NonerJ   zException | Nonerf   Úintr   )r'   ztuple[int, ...]rI   rj   rf   rk   )rb   zstr | IO[str]rf   rg   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   Úpropertyr   Úsetterr(   r-   r1   r0   ÚtostringrN   rW   rd   Ú__static_attributes__r?   r   r   r   r      sî   † ñ	ð Ø<@ð&àð&ð :ð&ð 
õ	&ð óó ðð ‡^�^ó ó ð ð ó	ó ð	ð ‡]�]óó ðô	ô	)ôð €Hð GKðØ'ðØ3Cðà	õð: %)ð)"àð)"ð "ð)"ð 
õ	)"÷Vr   r   c                ó@   • [        5       nXl        Xl        SUl        U$ )Nr   )r   r   r   r   )r   Údatar   s      r   Úrawrw   Ô   s   € Ü‹n€GØ„OØ„OØ€G„MØ€Nr   c                ó†   • U S:X  a*  [        S5       Vs/ s H  n[        X-  S-  5      PM     sn$ Sn[        U5      es  snf )Nr   rB   rS   z"unavailable when black is non-zero)r#   rk   ÚNotImplementedError)ÚblackÚwhiter&   r:   s       r   Úmake_linear_lutr|   à   sC   € Ø�ƒzÜ/4°S¬zÓ:ªz¨!”�E‘I Ñ$Ö%©zÑ:Ð:à
.€CÜ
˜cÓ
"Ð"ùò ;s   ”>c                ón   • [        S5       Vs/ s H  n[        US-  U -  S-  S-   5      PM     sn$ s  snf )NrB   g     ào@g      à?)r#   rk   )Úexpr&   s     r   Úmake_gamma_lutr   è   s6   € Ü=BÀ3¼ZÓHºZ¸ŒC�!�e‘) Ñ# uÑ,¨sÑ2Ö3¹ZÑHÐHùÒHs   Ž!2c           
     óº   • [        [        S[        U 5      -  5      5      nUR                  5         [	        X Vs/ s H  o"[        U 5      -  PM     sn5      $ s  snf ©NrB   )rF   r#   r"   Úreverser   ©r   r   r&   s      r   Únegativer„   ì   sH   € Ü”5˜œs 4›y™Ó)Ó*€GØ‡O�OÔÜ˜°wÓ?²w°!¤C¨£Iœ~±wÑ?Ó@Ð@ùÒ?s   ºA
c                óˆ   • SSK Jn  [        S[        U 5      -  5       Vs/ s H  o!" SS5      PM     nn[	        X5      $ s  snf )Nr   )ÚrandintrB   rS   )Úrandomr†   r#   r"   r   )r   r†   Ú_r   s       r   r‡   r‡   ò   s?   € Ýä(-¨c´C¸³I©oÔ(>Ó?Ò(> 1ˆw�q˜#ŽÑ(>€GÐ?Ü˜Ó&Ð&ùò @s    ?c           	     óØ   • [         R                  " U 5       Vs/ s H  n[        SU5      PM     nn[        S[	        S5       Vs/ s H  o2US-     US-     PM     sn5      $ s  snf s  snf )Nr   rQ   i   r>   )r	   Úgetrgbr|   r   r#   )r{   ÚbandÚbandsr&   s       r   Úsepiar�   ù   sb   € Ü2<×2CÒ2CÀEÔ2JÓKÒ2J¨$Œ_˜Q Ö%Ñ2J€EÐKÜ˜¼eÀG¼nÓMºn¸ a¨!¡e¡¨Q°!©VÔ 4¹nÑMÓNÐNùò LùÚMs   ™A"ÁA'
c           
     óš   • [        [        S[        U 5      -  5      5      n[        X Vs/ s H  o"[        U 5      -  PM     sn5      $ s  snf r�   )rF   r#   r"   r   rƒ   s      r   Úwedger�   þ   s>   € Ü”5˜œs 4›y™Ó)Ó*€GÜ˜°wÓ?²w°!¤C¨£Iœ~±wÑ?Ó@Ð@ùÒ?s   ªA
c                óp  • [        U S5       n[        R                  [        R                  [        R                  /nU H4  n UR	                  S5        U" U5      R                  5       nU(       a    OM6     Sn[        U5      e S S S 5        U$ ! [        [        4 a     Mc  f = f! , (       d  f       W$ = f)NÚrbr   zcannot load palette)	r^   r   r   r
   ÚseekÚ
getpaletteÚSyntaxErrorr6   ÚOSError)Úfilenamerb   ÚpaletteHandlersÚpaletteHandlerÚlutr:   s         r   Úloadrš     s¼   € ô 
ˆh˜Ô	 ô ×+Ñ+Ü×-Ñ-Ü×#Ñ#ð
ð 	ó .ˆNðØ—‘˜”
Ù$ RÓ(×3Ñ3Ó5�ÞÙñ ñ	 .ð (ˆCÜ˜#“,Ðð ÷# 
ð0 €Jøô  ¤Ð,ó Úðú÷% 
Ô	ð0 €Jús/   �5B&Á.BÁ1B&ÂB#ÂB&Â"B#Â#B&Â&
B5)r   r]   rv   rh   rf   r   )rz   rk   r{   Úfloatrf   ú	list[int])r~   r›   rf   rœ   )rQ   )r   r]   rf   r   )z#fff0c0)r{   r]   rf   r   )r–   r]   rf   ztuple[bytes, str])Ú
__future__r   r9   Úcollections.abcr   Útypingr   Ú r   r   r	   r
   ÚTYPE_CHECKINGr   r   rw   r|   r   r„   r‡   r�   r�   rš   r?   r   r   Ú<module>r¢      s]   ðõ$ #ã Ý $Ý ç HÓ Hà€ÞÝ÷nñ nôjô#ôIöAö'öOö
Aõ
r   