o
    Ñ­j•  ã                   @  sj   d Z ddlmZ 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d„Z
G dd„ dejƒZdS )z*
Parse X Bitmap Distribution Format (BDF)
é    )Úannotations)ÚBinaryIOé   )ÚFontFileÚImageÚRomanÚItalicÚObliquezReverse ItaliczReverse ObliqueÚOther)ÚRÚIÚOÚRIÚROÚOTÚProportionalÚ
MonospacedÚCell)ÚPÚMÚCÚfr   Úreturnúqtuple[str, int, tuple[tuple[int, int], tuple[int, int, int, int], tuple[int, int, int, int]], Image.Image] | Nonec                 C  s€  	 |   ¡ }|s	d S |d d… dkrnq|dd …  ¡  d¡}i }	 |   ¡ }|r/|d d… dkr0n| d¡}||d d	…  d¡||d |…  d¡< q!tƒ }	 |   ¡ }|r\|d d
… dkr]n	||d d	… 7 }qNdd„ |d  ¡ D ƒ\}}}}	dd„ |d  ¡ D ƒ\}
}|
|f||	 | || |	 fdd||ff}zt d||f|dd¡}W n tyµ   t 	d||f¡}Y nw |t
|d ƒ||fS )NTé	   s	   STARTCHARÚasciié   s   BITMAPó    r   éÿÿÿÿé   s   ENDCHARc                 s  ó   � | ]}t |ƒV  qd S ©N©Úint©Ú.0Úp© r'   úL/var/www/html/CropPilot/venv/lib/python3.10/site-packages/PIL/BdfFontFile.pyÚ	<genexpr>R   ó   € zbdf_char.<locals>.<genexpr>ÚBBXc                 s  r    r!   r"   r$   r'   r'   r(   r)   V   r*   ÚDWIDTHr   Ú1ÚhexÚENCODING)ÚreadlineÚstripÚdecodeÚfindÚ	bytearrayÚsplitr   Ú	frombytesÚ
ValueErrorÚnewr#   )r   ÚsÚidÚpropsÚiÚbitmapÚwidthÚheightÚx_dispÚy_dispÚdwxÚdwyÚbboxÚimr'   r'   r(   Úbdf_char)   sF   û
(ûü

ýþrF   c                      s"   e Zd ZdZd‡ fdd„Z‡  ZS )	ÚBdfFontFilez(Font file plugin for the X11 BDF format.Úfpr   r   ÚNonec                   s  t ƒ  ¡  | ¡ }|d d… dkrd}t|ƒ‚i }g }	 | ¡ }|r*|d d… dkr+n7| d¡}||d d…  d	¡||d |…  d	¡< |d |… d
v ra| d¡dk ra| ||d d…  d	¡¡ q	 t|ƒ}|skd S |\}}	\}
}}}d|	  kr�t| j	ƒk rŒn n	|
|||f| j	|	< qc)Né   s   STARTFONT 2.1znot a valid BDF fileTs   ENDPROPERTIESr   r   r   r   )s   COMMENTs	   COPYRIGHTs   LogicalFontDescriptionr   )
ÚsuperÚ__init__r0   ÚSyntaxErrorr3   r2   ÚappendrF   ÚlenÚglyph)ÚselfrH   r9   Úmsgr;   Úcommentsr<   Úcr:   ÚchÚxyÚdstÚsrcrE   ©Ú	__class__r'   r(   rL   j   s2   

(ø
úzBdfFontFile.__init__)rH   r   r   rI   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__rL   Ú__classcell__r'   r'   rY   r(   rG   g   s    rG   N)r   r   r   r   )r^   Ú
__future__r   Útypingr   Ú r   r   Ú	bdf_slantÚbdf_spacingrF   rG   r'   r'   r'   r(   Ú<module>   s   ú	
>