U
    Å½„b  ã                   @   sP   d Z ddlmZmZ ddddddd	œZd
dddœZdd„ ZG dd„ dejƒZdS )z*
Parse X Bitmap Distribution Format (BDF)
é   )ÚFontFileÚImageZRomanZItalicZObliquezReverse ItaliczReverse ObliqueZOther)ÚRÚIÚOZRIZROZOTZProportionalZ
MonospacedZCell)ÚPÚMÚCc                 C   sˆ  |   ¡ }|sd S |d d… dkr q$q |dd …  ¡  d¡}i }|   ¡ }|r�|d d… dkr\q�| d¡}||d d…  d¡||d |…  d¡< q>g }|   ¡ }|rÆ|d d	… d
kr²qÆ| |d d… ¡ q”d |¡}dd„ |d  ¡ D ƒ\}}}}	dd„ |d  ¡ D ƒ\}
}|
|f||	 | || |	 fdd||ff}zt d||f|dd¡}W n& t	k
�rr   t 
d||f¡}Y nX |t|d ƒ||fS )Né	   s	   STARTCHARÚasciié   s   BITMAPó    r   éÿÿÿÿé   s   ENDCHARó    c                 S   s   g | ]}t |ƒ‘qS © ©Úint©Ú.0Úpr   r   ú3/tmp/pip-unpacked-wheel-_wxctax1/PIL/BdfFontFile.pyÚ
<listcomp>C   s     zbdf_char.<locals>.<listcomp>ZBBXc                 S   s   g | ]}t |ƒ‘qS r   r   r   r   r   r   r   D   s     ZDWIDTHé    Ú1ÚhexÚENCODING)ÚreadlineÚstripÚdecodeÚfindÚappendÚjoinÚsplitr   Z	frombytesÚ
ValueErrorÚnewr   )ÚfÚsÚidÚpropsÚiZbitmapÚxÚyÚlÚdZdxZdyZbboxÚimr   r   r   Úbdf_char'   s4    
*
*r0   c                       s    e Zd ZdZ‡ fdd„Z‡  ZS )ÚBdfFontFilez(Font file plugin for the X11 BDF format.c                    s  t ƒ  ¡  | ¡ }|d d… dkr*tdƒ‚i }g }| ¡ }|r¾|d d… dkrPq¾| d¡}||d d…  d¡||d |…  d¡< |d |… d	kr2| d
¡dk r2| ||d d…  d¡¡ q2t|ƒ}|sÎ�q|\}}\}	}
}}d|  krút| j	ƒk r¾n q¾|	|
||f| j	|< q¾d S )Né   s   STARTFONT 2.1znot a valid BDF files   ENDPROPERTIESr   r   r   r   )s   COMMENTs	   COPYRIGHTs   LogicalFontDescriptionr   )
ÚsuperÚ__init__r   ÚSyntaxErrorr    r   r!   r0   ÚlenZglyph)ÚselfÚfpr'   r)   Úcommentsr*   Úcr(   ÚchZxyÚdstÚsrcr/   ©Ú	__class__r   r   r4   T   s(    

(zBdfFontFile.__init__)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r4   Ú__classcell__r   r   r>   r   r1   Q   s   r1   N)rC   Ú r   r   Z	bdf_slantZbdf_spacingr0   r1   r   r   r   r   Ú<module>   s   ú	*