o
    Ԧ/f#                     @  s   d dl mZ ddlmZmZ ddlmZ ddlmZ dZ	dd Z
e
 Zd	d
ddZddd dZdd Zede edd edd dS )    )annotations   )Image	ImageFile)o8)o16be(   )   r   r   )r      r   )r      r   )r   f   r   )r   3   r   )r   r   r   )r   r   r	   )r   r	   r	   )r   r
   r	   )r   r   r	   )r   r   r	   )r   r   r	   )r   r   r
   )r   r	   r
   )r   r
   r
   )r   r   r
   )r   r   r
   )r   r   r
   )r	   r   r   )r	   r	   r   )r	   r
   r   )r	   r   r   )r	   r   r   )r	   r   r   )r	   r   r	   )r	   r	   r	   )r	   r
   r	   )r	   r   r	   )r	   r   r	   )r	   r   r	   )r	   r   r
   )r	   r	   r
   )r	   r
   r
   )r	   r   r
   )r	   r   r
   )r	   r   r
   )r
   r   r   )r
   r	   r   )r
   r
   r   )r
   r   r   )r
   r   r   )r
   r   r   )r
   r   r	   )r
   r	   r	   )r
   r
   r	   )r
   r   r	   )r
   r   r	   )r
   r   r	   )r
   r   r
   )r
   r	   r
   )r
   r
   r
   )r
   r   r
   )r
   r   r
   )r
   r   r
   )r   r   r   )r   r	   r   )r   r
   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r	   )r   r	   r	   )r   r
   r	   )r   r   r	   )r   r   r	   )r   r   r	   )r   r   r
   )r   r	   r
   )r   r
   r
   )r   r   r
   )r   r   r
   )r   r   r
   )r   r   r   )r   r	   r   )r   r
   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r	   )r   r	   r	   )r   r
   r	   )r   r   r	   )r   r   r	   )r   r   r	   )r   r   r
   )r   r	   r
   )r   r
   r
   )r   r   r
   )r   r   r
   )r   r   r
   )r   r   r   )r   r	   r   )r   r
   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r	   )r   r	   r	   )r   r
   r	   )r   r   r	   )r   r   r	   )r   r   r	   )r   r   r
   )r   r	   r
   )r   r
   r
   )r   r   r
   )r   r   r
   )r   r   r
   )r   r   r   )r   r	   r   )r   r
   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r	   r   )r   r
   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r	   r   )r   r
   r   )r   r   r   )r   r   r   )r   r   r   )r	   r   r   )r	   r	   r   )r	   r
   r   )r	   r   r   )r	   r   r   )r	   r   r   )r	   r   r   )r	   r	   r   )r	   r
   r   )r	   r   r   )r	   r   r   )r	   r   r   )r	   r   r   )r	   r	   r   )r	   r
   r   )r	   r   r   )r	   r   r   )r	   r   r   )r
   r   r   )r
   r	   r   )r
   r
   r   )r
   r   r   )r
   r   r   )r
   r   r   )r
   r   r   )r
   r	   r   )r
   r
   r   )r
   r   r   )r
   r   r   )r
   r   r   )r
   r   r   )r
   r	   r   )r
   r
   r   )r
   r   r   )r
   r   r   )r
   r   r   )r   r   r   )r   r	   r   )r   r
   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r	   r   )r   r
   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r	   r   )r   r
   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r	   r   )r   r
   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r	   r   )r   r
   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r	   r   )r   r
   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r	   r   )r   r
   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r	   r   )r   r
   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r	   r   )r   r
   r   )r   r   r   )r   r   r   )   r   r   )"   r   r   )D   r   r   )U   r   r   )w   r   r   )   r   r   )   r   r   )   r   r   )   r   r   )   r   r   )   r   r   )   r   r   )r   r   r   )r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   c                  C  sb   t ddttf} | tttt d}tD ]}||7 }q|ddtt  7 }| | | S )NLr    r      )r   newlen_Palm8BitColormapValuesZputdatalistrangeZ
putpalette)ZimageZpalettedataZcolormapValuer   r   3lib/python3.10/site-packages/PIL/PalmImagePlugin.pybuild_prototype_imageU   s   

r#   i @  i   i    )custom-colormapzis-compressedzhas-transparentr   )noneZrleZscanlinec              
   C  s&  | j dkrd}d}d}nl| j dkra| jddv r/| jd }| d| d|> d fdd} n&| jddv rJ| jd }| d|> d fd	d} nd
| j  d}t|d| _ dt| }d}n| j dkrmd}d}d}nd
| j  d}t||   | jd }| jd }t	|d| d  d|  d }	d}
t
d }d}| j dkrd| jv r|td @ }d}| jj }|   }nd}d| jv r|	| d d | d }nd}|t|t| t|	 t|  |t| |t| |t| |t|
 |t| |td |dkrs|td tdD ]T}|t| |dkrM|t|d|  t|d| d   t|d| d    q|dkrq|t|d|  t|d| d   t|d| d    qt| |dd| j d||	dffg t|dr|  d S d S )NP   r   r   bpp)r         c                 S  s   || |?  S Nr   )xshiftmaxvalr   r   r"   <lambda>       z_save.<locals>.<lambda>c                 S  s   || |@  S r+   r   )r,   r.   r   r   r"   r/      r0   zcannot write mode z as PalmzP;1z1;Ir      r)   r%   r$   i  offset   r*   r   ZRGBZRGBAraw)r   r   flush)modeZencoderinfogetZpointinfoOSErrorstrloadsizeint_COMPRESSION_TYPES_FLAGSZpaletteZgetdataZ
getpalettewriteo16br   r!   r   _savehasattrr6   )ZimfpfilenameZrawmoder(   versionmsgZcolsZrowsZrowbytesZtransparent_indexZcompression_typeflagsZcolormapsizeZcolormapmodeZcolormapr3   ir   r   r"   rC   s   s   






 
&


$rC   ZPalmz.palmz
image/palmN)Z
__future__r    r   r   Z_binaryr   r   rB   r   r#   ZPalm8BitColormapImager@   r?   rC   Zregister_saveZregister_extensionZregister_mimer   r   r   r"   <module>   s   E
k