
    \bj                    `    d dl mZ d dlZd dlmZ ddlmZmZmZ dZ	ddZ
 G d d          ZdS )    )annotationsN)BinaryIO   )Image	ImageFont_binaryi   fpr   values7tuple[int, int, int, int, int, int, int, int, int, int]returnNonec                t    |D ]4}|dk     r|dz  }|                      t          j        |                     5dS )z0Write network order (big-endian) 16-bit sequencer      N)writer   o16be)r	   r
   vs      @/home/drrone/.local/lib/python3.11/site-packages/PIL/FontFile.pyputi16r      sN      # #q55JA
q!!""""# #    c                  R    e Zd ZU dZdZded<   ddZddZddZddZ	ddZ
ddZdS )FontFilez)Base class for raster font file handlers.NzImage.Image | Nonebitmapr   r   c                *    i | _         d gdz  | _        d S )N   )infoglyph)selfs    r   __init__zFontFile.__init__)   s    .0	 FSL 	


r   ixint`tuple[tuple[int, int], tuple[int, int, int, int], tuple[int, int, int, int], Image.Image] | Nonec                    | j         |         S )N)r   )r   r   s     r   __getitem__zFontFile.__getitem__5   s     z"~r   c                D   | j         rdS dx}x}}d}| j        D ]o}|rk|\  }}}}	t          ||d         |d         z
            }||d         |d         z
  z  }|t          k    r|dz  }|d         |d         z
  }t          ||          }p|}
||z  }|
dk    r|dk    rdS || _        t          j        |
|f           t          j        d|
|f          | _         dgdz  | _        dx}}t          d          D ]}| |         }|r|\  }}}}	|d         |d         z
  }||}}||z   }|t          k    rd||z   }}||}}|}|d         |z   |d         |z   |d         |z   |d         |z   f}| j         
                    |	                    |          |           |||f| j        |<   dS )zCreate metrics and bitmapNr   r         1r   )r   r   maxWIDTHysizer   _decompression_bomb_checknewmetricsrangepastecrop)r   hwmaxwidthlinesr   ddstsrcimxsizer*   xyixxx0y0ss                      r   compilezFontFile.compile@   s    ; 	F AZ 	, 	,E ,"'3R3q6CF?++SVc!f_$u99QJEAQAx++	A::%1**F
 	'777ieU^44 FSL 	 	As 	, 	,AGE ,"'3RVc!f_ABFu99a!eqABAFRKQ"c!frk3q6B;F!!"''#,,222"#S!)Q	, 	,r   bytesc                V   g }t          d          D ]T}| j        |         }|r.|                    |d         |d         z   |d         z              ?|                    d           Ut                      }|D ]$}|dk     r|dz  }|t	          j        |          z  }%t          |          S )Nr   r   r   r&   )
r   r   r   r   r   r   r   r   r   r   r   )r.   r-   extend	bytearrayr   r   rB   )r   r
   r<   mdatar   s         r   _encode_metricszFontFile._encode_metricsr   s    s 	) 	)AQA )adQqTkAaD01111i(((({{ 	% 	%A1uuU
GM!$$$DDT{{r   filenamestrc                   |                                   | j        sd}t          |          | j                            t          j                            |          d         dz   d           t          t          j                            |          d         dz   d          5 }|                    d           |                    d| j	         d	
                    d
                     |                    d           |                    |                                            ddd           dS # 1 swxY w Y   dS )z	Save fontNo bitmap createdr   z.pbmPNGz.pilwbs   PILfont
z;;;;;;z;
asciis   DATA
N)rA   r   
ValueErrorsaveospathsplitextopenr   r*   encoderH   )r   rI   msgr	   s       r   rQ   zFontFile.save   s]    	 { 	"%CS//!))(33A6?GGG "'""8,,Q/&8$?? 	-2HH\"""HH-dj---44W==>>>HHYHHT))++,,,		- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   $BD44D8;D8ImageFont.ImageFontc                    |                                   | j        sd}t          |          t          j                    }|                    | j        |                                            |S )zConvert to ImageFontrL   )rA   r   rP   r   _loadrH   )r   rW   	imagefonts      r   to_imagefontzFontFile.to_imagefont   sd     	 { 	"%CS//!'))	T%9%9%;%;<<<r   )r   r   )r   r    r   r!   )r   rB   )rI   rJ   r   r   )r   rX   )__name__
__module____qualname____doc__r   __annotations__r   r#   rA   rH   rQ   r\    r   r   r   r   $   s         33!%F%%%%
 
 
 
	 	 	 	0, 0, 0, 0,d    - - - -$     r   r   )r	   r   r
   r   r   r   )
__future__r   rR   typingr    r   r   r   r)   r   r   rb   r   r   <module>rf      s     # " " " " " 				       ' ' ' ' ' ' ' ' ' '# # # #| | | | | | | | | |r   