U
    ڲgD$                     @  s   d dl mZ 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	d
dZe ZddddZddd dZdddddddZede edd edd dS )    )annotations)IO   )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   zImage.Image)returnc                  C  sb   t ddttf} | tttt d}tD ]}||7 }q2|ddtt  7 }| | | S )NLr    r      )r   newlen_Palm8BitColormapValuesZputdatalistrangeZ
putpalette)imageZpalettedataZcolormapValuer   r   7/tmp/pip-unpacked-wheel-xela2va7/PIL/PalmImagePlugin.pybuild_prototype_imageW   s    

r&   i @  i   i    )custom-colormapzis-compressedzhas-transparentr	   )noneZrleZscanlinez	IO[bytes]zstr | bytesNone)imfpfilenamer   c              
     s0  | j dkrd}d}d}n| j dkr| jddkrf| jd }d|> d  d| |  fdd} nP| jddkr| jd }d|> d  |  fd	d} nd
| j  d}t|d| _d| }d}n.| j dkrd}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kr|td @ }d}| jj }|   }nd}d| jkr|	| d d | d }nd}|t|t| t|	 t|  |t| |t| |t| |t|
 |t| |td |dkr|td tdD ]}|t| |dkr|t|d|  t|d| d   t|d| d    nH|dkrL|t|d|  t|d| d   t|d| d    qLt| |dd| j d||	dffg t|dr,|  d S )NP   r   r   bpp)r         c                   s    | ?  S Nr   xmaxvalshiftr   r%   <lambda>       z_save.<locals>.<lambda>c                   s    |  @  S r2   r   r3   )r6   r   r%   r8      r9   zcannot write mode z as PalmzP;1z1;Ir      r0   r(   r'   i  offset   r1   r   ZRGBZRGBAraw)r   r   flush)modeZencoderinfogetZpointinfoOSError_modeloadsizeint_COMPRESSION_TYPES_FLAGSZpaletteZgetdataZ
getpalettewriteo16br   r#   r   _savehasattrr?   )r*   r+   r,   rawmoder/   versionmsgcolsZrowsZrowbytesZtransparent_indexZcompression_typeflagsZcolormapsizeZcolormapmodeZcolormapr<   ir   r5   r%   rL   u   s    







 &


$rL   ZPalmz.palmz
image/palmN)
__future__r   typingr    r   r   _binaryr   r   rK   r!   r&   ZPalm8BitColormapImagerI   rH   rL   Zregister_saveZregister_extensionZregister_mimer   r   r   r%   <module>	   s   E
l