
    1)ip                    d    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y)    )annotationsN)BinaryIO   )Image	ImageFont_binaryi   c                n    |D ]0  }|dk  r|dz  }| j                  t        j                  |             2 y)z0Write network order (big-endian) 16-bit sequencer      N)writer   o16be)fpvaluesvs      P/var/www/html/spbu.com/backend/venv/lib/python3.12/site-packages/PIL/FontFile.pyputi16r      s3     q5JA
q!"     c                  T    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y)FontFilez)Base class for raster font file handlers.NzImage.Image | Nonebitmapc                (    i | _         d gdz  | _        y )N   )infoglyph)selfs    r   __init__zFontFile.__init__)   s    .0	 FSL 	
r   c                     | j                   |   S )N)r   )r   ixs     r   __getitem__zFontFile.__getitem__5   s     zz"~r   c                   | j                   rydx}x}}d}| j                  D ]T  }|s|\  }}}}	t        ||d   |d   z
        }||d   |d   z
  z   }|t        kD  r|dz  }|d   |d   z
  }t        ||      }V |}
||z  }|
dk(  r|dk(  ry|| _        t        j                  d|
|f      | _         dgdz  | _        dx}}t        d      D ]  }| |   }|s|\  }}}}	|d   |d   z
  }||}}||z   }|t        kD  rd||z   }}||}}|}|d   |z   |d   |z   |d   |z   |d   |z   f}| j                   j                  |	j                  |      |       |||f| j                  |<    y)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    ;; AZZE"'3R3q6CF?+Q#a&)u9QJEAQAx+   	A:%1*
 iieU^4 FSL 	 	AsAGE"'3RVc!f_ABFu9a!eqABAFRKQ"c!frk3q6B;F!!"''#,2"#S!)Q r   c                (   g }t        d      D ]E  }| j                  |   }|r!|j                  |d   |d   z   |d   z          5|j                  d       G t               }|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   bytes)r   r   r6   mdatar   s         r   _encode_metricszFontFile._encode_metricsq   s    sAQAadQqTkAaD01i(  {A1uU
GMM!$$D  T{r   c                :   | j                          | j                  sd}t        |      | j                  j                  t        j
                  j                  |      d   dz   d       t        t        j
                  j                  |      d   dz   d      5 }|j                  d       |j                  d| j                   d	j                  d
             |j                  d       |j                  | j                                ddd       y# 1 sw Y   yxY w)z	Save fontNo bitmap createdr   z.pbmPNGz.pilwbs   PILfont
z;;;;;;z;
asciis   DATA
N)r;   r   
ValueErrorsaveospathsplitextopenr   r%   encoderB   )r   filenamemsgr   s       r   rI   zFontFile.save   s     	 {{%CS/!))(3A6?G "''""8,Q/&8$?2HH\"HHvdjj\-44W=>HHYHHT))+,	 @??s   A0DDc                    | j                          | j                  sd}t        |      t        j                         }|j	                  | j                  | j                                |S )zConvert to ImageFontrD   )r;   r   rH   r   _loadrB   )r   rP   	imagefonts      r   to_imagefontzFontFile.to_imagefont   sT     	 {{%CS/!'')	T%9%9%;<r   )returnNone)r   intrU   z`tuple[tuple[int, int], tuple[int, int, int, int], tuple[int, int, int, int], Image.Image] | None)rU   r?   )rO   strrU   rV   )rU   zImageFont.ImageFont)__name__
__module____qualname____doc__r   __annotations__r   r   r;   rB   rI   rT    r   r   r   r   $   s9    3!%F%
			/,b -$r   r   )r   r   r   z7tuple[int, int, int, int, int, int, int, int, int, int]rU   rV   )
__future__r   rJ   typingr    r   r   r   r$   r   r   r^   r   r   <module>rb      sD     # 	  ' '##Q#	#{ {r   