U
    Evfù  ã                   @  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-ciywl2yd/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rªd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|< qÞd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| }|s¨t|dƒ qŠt||d |d  |d  ƒ qŠW 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   
