a
    ç´«jÕ  ã                   @  sR   d Z ddlmZ ddlmZ ddlmZmZ dddœd	d
„ZG dd„ dejƒZ	dS )z*
Parse X Bitmap Distribution Format (BDF)
é    )Úannotations)ÚBinaryIOé   )ÚFontFileÚImager   zqtuple[str, int, tuple[tuple[int, int], tuple[int, int, int, int], tuple[int, int, int, int]], Image.Image] | None)ÚfÚreturnc                 C  sj  |   ¡ }|sd S | d¡r qq |dd …  ¡  d¡}i }|   ¡ }|r„| d¡rPq„| d¡}||d d…  d¡||d |…  d¡< q8tƒ }|   ¡ }|r´| d¡r¢q´||d d… 7 }qŠd	d
„ |d  ¡ D ƒ\}}}}	dd
„ |d  ¡ D ƒ\}
}|
|f||	 | || |	 fdd||ff}zt d||f|dd¡}W n$ t	�yT   t 
d||f¡}Y n0 |t|d ƒ||fS )Ns	   STARTCHARé	   Úasciis   BITMAPó    r   éÿÿÿÿs   ENDCHARc                 s  s   | ]}t |ƒV  qd S ©N©Úint©Ú.0Úp© r   úN/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/PIL/BdfFontFile.pyÚ	<genexpr>G   ó    zbdf_char.<locals>.<genexpr>ZBBXc                 s  s   | ]}t |ƒV  qd S r   r   r   r   r   r   r   K   r   ZDWIDTHr   Ú1ÚhexÚENCODING)ÚreadlineÚ
startswithÚstripÚdecodeÚfindÚ	bytearrayÚsplitr   Ú	frombytesÚ
ValueErrorÚnewr   )r   ÚsÚidÚpropsÚiZbitmapÚwidthÚheightZx_dispZy_dispZdwxZdwyZbboxÚimr   r   r   Úbdf_char   s8    

*
ýr+   c                      s(   e Zd ZdZdddœ‡ fdd„Z‡  ZS )ÚBdfFontFilez(Font file plugin for the X11 BDF format.r   ÚNone)Úfpr   c                   s  t ƒ  ¡  | ¡ }| d¡s(d}t|ƒ‚i }g }| ¡ }|r¶| d¡rHq¶| d¡}||d d…  d¡||d |…  d¡< |d |… dv r0| d	¡d
k r0| ||d d…  d¡¡ q0t|ƒ}|sÆ�q
|\}}	\}
}}}d
|	  kròt	| j
ƒk r¶n q¶|
|||f| j
|	< q¶d S )Ns   STARTFONT 2.1znot a valid BDF files   ENDPROPERTIESr   r   r   r
   )s   COMMENTs	   COPYRIGHTs   LogicalFontDescriptionr   )ÚsuperÚ__init__r   r   ÚSyntaxErrorr   r   Úappendr+   ÚlenZglyph)Úselfr.   r$   Úmsgr&   Úcommentsr'   Úcr%   ÚchZxyÚdstÚsrcr*   ©Ú	__class__r   r   r0   _   s*    


(zBdfFontFile.__init__)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r0   Ú__classcell__r   r   r;   r   r,   \   s   r,   N)
r@   Ú
__future__r   Útypingr   Ú r   r   r+   r,   r   r   r   r   Ú<module>   s
   >