o
    ځd                     @   s6   d Z dZdZdZdZdZdZdZdZd	Z	dddZ
dS ))pil2picti            i               c                    sT  ddl m	 ddlm} t|}t|}|   fdd fdd} 	fdd	 	fd
d}	fdd}
|d }|t d |
dd||  t d t |	d |
dddd |
| d|d |d d t d |
dd||  |dkrt	 |d? d@ d d  |d? d@ d d  |d@ d d  d d d d t
 | dB  |
dd||  d d |	d |
dddd d d d d |	d |	d |	d |	d d |d  t|D ]/}| |d|  d d  |d| d  d d  |d| d  d d  q|
dd||  |
dd||  |dkrQdnd d}t }t }|j|j}|j}| d }| dkrs}d}nfdd }d}d!d  d"d  fd#d$}t|D ]s}||  }t||||   |d d < t |d d < d |}|d |}|dkrވ|| krʈd7 n|  |d8 }|| |d8 }|dks|  dkr t|}||| 7 }|| |   t| q|d@ rd% t   }|t } t |d@    S )&N    )pack)BytesIOc                    s     |  d S Nwritec__bs__ 2lib/python3.10/site-packages/rlPyCairo/pil2pict.pyputc   s   zpil2pict.<locals>.putcc                    s     | d  d S )N    r   )nr   r   r   putFill   s   zpil2pict.<locals>.putFillc                         d|  d S )Nz>Hr   vr   struct_packr   r   putShort      zpil2pict.<locals>.putShortc                    r   )Nz>lr   r   r   r   r   putLong    r    zpil2pict.<locals>.putLongc                    s$    |   |  |  | d S r   r   )Zs0s1s2Zs3)r   r   r   putRect#   s   zpil2pict.<locals>.putRect   i  r	   H         
      r   i        d   i   r         c                    s    t | gS r   )bytesr   )r   r   r   <lambda>t   s    zpil2pict.<locals>.<lambda>c                 S   s   d|  S )Ni  r   r   r   r   r   r1   w       c                 S   s   | d S )Nr   r   r   r   r   r   r1   x   r2   c                     s   dk r(dkr$  d8 d7 dkr d d8 dksdd S dkr2 ddkrTdkr>dn}   | d@  | 8 dks8dd S )Nr%   r
   r      r   r   r   )Zrep)cbcountctcr_appendrtcrunr   r   endrunz   s(   zpil2pict.<locals>.endrunr   )structr   ior   len	headerLen
picVersionheaderOpclipRgn
backgroundPackBitsRectrange	bytearrayappendextendreverser   r0   EndOfPicturetellseekgetvalue)ZcolsZrowsZpixelsZpaletteZtcr   ZnpixelsZcolorsr   r!   r$   iocdrZr_extendZ	r_reverseZcols1ZputRLenZrlir:   jZj0kZpcZlbZlpr   )
r   r4   r5   r6   r   r   r7   r8   r9   r   r   r      s    






r   N)r	   )__all__r>   ZmaxLenr?   rB   r@   rA   rC   rI   Z	MAXCOLORSr   r   r   r   r   <module>   s    