3
`JZ'                 @   sX   d dl m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 )    )print_function   )ImageFontFileZRomanZItalicZObliquezReverse ItaliczReverse ObliqueZOther)RIOZRIZROZOTZProportionalZ
MonospacedZCell)PMCc             C   s  x&| j  }|sd S |d d dkrP qW |dd  j jd}i }xV| j  }| sb|d d dkrdP |jd}||d d jd||d | jd< qDW g }x6| j  }| s|d d d	krP |j|d d  qW d
j|}dd |d j D \}}}}	dd |d j D \}
}|
|f||	 | || |	 fdd||ff}ytjd||f|dd}W n& t	k
r   tj
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   1/usr/lib/python3/dist-packages/PIL/BdfFontFile.py
<listcomp>I   s    zbdf_char.<locals>.<listcomp>ZBBXc             S   s   g | ]}t |qS r   )r   )r   r   r   r   r   r   J   s    ZDWIDTHr   1hexENCODINGr   )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-   s:    
,
*r/   c               @   s   e Zd Zdd ZdS )BdfFontFilec             C   s"  t j j|  |j }|d d dkr,tdi }g }x|j }| sT|d d dkrVP |jd}||d d jd||d | jd< |d | dkr6|jd
dk r6|j||d d jd q6W xVt|}|sP |\}}\}	}
}}d|  kot| j	k n  r|	|
||f| j	|< qW d S )N   s   STARTFONT 2.1znot a valid BDF files   ENDPROPERTIESr   r   r      COMMENT	   COPYRIGHTs   LogicalFontDescriptionr   r   )r2   r3   r   )
r   __init__r   SyntaxErrorr   r   r    r/   lenZglyph)selffpr&   r(   Zcommentsr)   cr'   ZchZxyZdstsrcr.   r   r   r   r4   \   s,    
(  zBdfFontFile.__init__N)__name__
__module____qualname__r4   r   r   r   r   r0   Z   s   r0   N)	Z
__future__r    r   r   Z	bdf_slantZbdf_spacingr/   r0   r   r   r   r   <module>   s   -