o
    1ήc4                     @   s   d dl Z d dlZddlmZmZmZ ddlmZ ddlm	Z	 ddlm
Z eeZdd ZG d	d
 d
ejZdddddZdd Zeejee eeje eejd eejd dS )    N   )Image	ImageFileImagePalette)i16le)o8)o16lec                 C   s   | d dko| d dv S )Nr   
   r   )r             )prefixr   r   9/tmp/pip-target-vg8gfxp4/lib/python/PIL/PcxImagePlugin.py_accept'   s   r   c                   @   s   e Zd ZdZdZdd ZdS )PcxImageFilePCX
Paintbrushc                 C   s  | j d}t|stdt|dt|dt|dd t|dd f}|d |d	 ks4|d
 |d kr8tdtjdg|R   |d }|d
 }|d }t|d}td|||| t|dt|df| jd< |dkru|dkrud }}n|dkr|dv rd}d| }t	d|dd | _
ny|dkr|dkr|dkrd }}| j dtj | j d}t|dkr|d	 dkrtdD ]}	||	d
 d |	d
 d  t|	d
 krd }} nq|dkrt	d|dd  | _
| j d n|dkr|dkr|d
krd}d}ntd || _|d |d	  |d
 |d  f| _| jd	 | d! d }
||
kr2|
|
d 7 }
d"| j }tjd#g| jR   d$|| j  |||
 ffg| _d S )%N   znot a PCX file         r   r	   r
   r   r   zbad PCX image sizezBBox: %s %s %s %sA   B   z-PCX version %s, bits %s, planes %s, stride %s      dpi1)r
   r   PzP;%dLRGB   @   r   Lii     RGB;Lzunknown PCX mode   r   r   zsize: %sx%spcx)fpreadr   SyntaxErrori16loggerdebuginfor   rawpaletteseekioSEEK_ENDlenranger   OSErrormode_sizesizetelltile)selfsbboxversionbitsplanesprovided_strider7   rawmodeistrider   r   r   _open4   sd   , 

("

"zPcxImageFile._openN)__name__
__module____qualname__formatformat_descriptionrF   r   r   r   r   r   /   s    r   )r
   r   r   r   )r   r   r   r"   )r   r   r   r   )r   r   r   r$   )r   r"   r   r   c              
   C   s  zt | j \}}}}W n ty! } z
td| j d|d }~ww | jd | d d }||d 7 }td| jd || | j}	d}
|td	t| td
 t| t	d t	d t	| jd d
  t	| jd
 d
  t	|
d  t	|
d
  d d d t| t	| t	d
 t	|	d  t	|	d
  d  |
 dksJ t| |dd| j d||| ffg | jdkr|td | jdd}|ddt|  7 }|| d S | jdkr|td tdD ]}|t|d  qd S d S )NzCannot save z images as PCXr   r%   r   r
   z6PcxImagePlugin._save: xwidth: %d, bits: %d, stride: %d)d   rL   r	   r   s                           s       s6                                                         r   r'   r&   r   r   r   i   r"   r#   r   )SAVEr7   KeyError
ValueErrorr9   r,   r-   writer   o16r:   r   _saveim
getpaletter4   r5   )rT   r(   filenamer?   r@   rA   rC   erE   screenr   r0   rD   r   r   r   rS      s   


	


&

rS   z.pcxzimage/x-pcx)r2   logging r   r   r   _binaryr   r+   r   r   rR   	getLoggerrG   r,   r   r   rN   rS   register_openrJ   register_saveregister_extensionregister_mimer   r   r   r   <module>   s&   
X	I