
    zvg                    \    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Z	 G d d          Z
dS )    )annotationsN)BinaryIO   )Image_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   i   N)writer   o16be)r   r	   vs      I/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/PIL/FontFile.pyputi16r      sN      # #q55JA
q!!""""# #    c                  B    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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                   | 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        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   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?++Q#a&)u99QJEAQAx++	A::%1**F
 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   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           t          d          D ]J}| j        |         }|st          |d           "t          ||d         |d         z   |d         z              K	 ddd           dS # 1 swxY w Y   dS )z	Save fontzNo bitmap createdr   z.pbm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ms         r   rF   zFontFile.saveq   s    	 { 	"%CS//!))(33A6?GGG "'""8,,Q/&8$?? 		32HH\"""HH-dj---44W==>>>HHYCjj 3 3L$ 32y))))2qtad{QqT122223			3 		3 		3 		3 		3 		3 		3 		3 		3 		3 		3 		3 		3 		3 		3 		3 		3 		3s   $B6E((E,/E,)r   r   )r   r   r   r   )r?   r@   r   r   )
__name__
__module____qualname____doc__r   __annotations__r   r!   r>   rF    r   r   r   r   $   s~         33!%F%%%%
 
 
 
	 	 	 	/, /, /, /,b3 3 3 3 3 3r   r   )r   r   r	   r
   r   r   )
__future__r   rG   typingr    r   r   r'   r   r   rT   r   r   <module>rX      s     # " " " " " 				              # # # #b3 b3 b3 b3 b3 b3 b3 b3 b3 b3r   