o
    Z#a#                     @   s   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 )   )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   )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_Palm8BitColormapValuesputdatalistrange
putpalette)imagepalettedatacolormapValuer   r   5/usr/lib/python3/dist-packages/PIL/PalmImagePlugin.pybuild_prototype_imageT   s   

r'   i @  i   i    )custom-colormapzis-compressedzhas-transparentr   r   )nonerlescanlinec              
   C   s  | j dkrd}d}d}nh| j dkr_| 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	td
| j  dd| _ dt| }d}n| j dkrkd}d}d}n	td
| j  d|   | 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ro|td tdD ]T}|t| |dkrI|t|d|  t|d| d   t|d| d    q|dkrm|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 r1   r   )r2   r4   r   r   r&   r5      r6   zcannot write mode z as PalmzP;1z1;Ir      r/   r)   r(   i  offset   r0   r   RGBRGBAraw)r   r   flush)modeencoderinfogetpointinfoOSErrorstrloadsizeint_COMPRESSION_TYPES_FLAGSpalettegetdata
getpalettewriteo16br   r!   r   _savehasattrr>   )imfpfilenamerawmoder.   versioncolsrowsrowbytestransparent_indexcompression_typeflagscolormapsizecolormapmodecolormapr9   ir   r   r&   rP   r   s   






 
&


$rP   Palmz.palmz
image/palmN) r   r   _binaryr   r   rO   r   r'   Palm8BitColormapImagerJ   rI   rP   register_saveregister_extensionregister_mimer   r   r   r&   <module>   s   	E
m