U
    ڲg                     @  sX   d dl mZ d dlZd dlmZ ddlmZmZ dZddd	d
ddZ	G dd dZ
dS )    )annotationsN)BinaryIO   )Image_binaryi   r   z7tuple[int, int, int, int, int, int, int, int, int, int]None)fpvaluesreturnc                 C  s.   |D ]$}|dk r|d7 }|  t| qdS )z0Write network order (big-endian) 16-bit sequencer   i   N)writer   Zo16be)r   r	   v r   0/tmp/pip-unpacked-wheel-xela2va7/PIL/FontFile.pyputi16   s    r   c                   @  sZ   e Zd ZU dZdZded< ddddZd	d
dddZddddZdddddZ	dS )FontFilez)Base class for raster font file handlers.NzImage.Image | Nonebitmapr   )r
   c                 C  s   i | _ d gd | _d S )N   )infoglyph)selfr   r   r   __init__)   s    	zFontFile.__init__intz`tuple[tuple[int, int], tuple[int, int, int, int], tuple[int, int, int, int], Image.Image] | None)ixr
   c                 C  s
   | j | S )N)r   )r   r   r   r   r   __getitem__5   s    	zFontFile.__getitem__c                 C  s  | j r
dS d } }}d}| jD ]h}|r |\}}}}	t||d |d  }||d |d   }|tkr~|d7 }|d |d  }t||}q |}
|| }|
dkr|dkrdS || _td|
|f| _ dgd | _d }}tdD ]}| | }|r|\}}}}	|d |d  }|| }}|| }|tkrBd||  }}|| }}|}|d | |d | |d | |d | f}| j 	|	
|| |||f| j|< qdS )zCreate metrics and bitmapNr   r         1r   )r   r   maxWIDTHysizer   newmetricsrangeZpasteZcrop)r   hwZmaxwidthlinesr   ddstsrcZimZxsizer   xyiZxxZx0Zy0sr   r   r   compile@   sH    



,zFontFile.compilestr)filenamer
   c              	   C  s   |    | jsd}t|| jtj|d d d ttj|d d dz}|d |d| j	 d	
d
 |d tdD ]<}| j| }|st|d qt||d |d  |d   qW 5 Q R X dS )z	Save fontzNo bitmap createdr   z.pbmZPNGz.pilwbs   PILfont
z;;;;;;z;
asciis   DATA
r   )
r   r   r   r   r   r   r   r   r   r   r   r   N)r-   r   
ValueErrorsaveospathsplitextopenr   r   encoder"   r!   r   )r   r/   msgr   idmr   r   r   r3   q   s    


zFontFile.save)
__name__
__module____qualname____doc__r   __annotations__r   r   r-   r3   r   r   r   r   r   $   s   
1r   )
__future__r   r4   typingr    r   r   r   r   r   r   r   r   r   <module>   s   
