
    |-j              	       B   d dl mZ d dlZd dlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 d	ed
ededefdZ	 d!d	ed
ededej        fdZ G d d          Z e ee
                                                    r ej        de
 d            ed          Z ed          Z ed          Z ed          Z ed          Z ed          Z ed          Z ed          Z ed          Z ed          Z ed          Z ed           ZdS )"    )PathN)	ImageFont   )logging)	CACHE_DIR)download)LOCAL_FONT_FILE_PATHtxtsz	font_pathreturnc                    t          |d         dz            }t          j        ||d          }t          t          j                            d          d                   dk     r|                    |           d         }n|                    |           }||d         k    r2t          ||d         z  |z            }t          j        ||d          }|S )a  
    Create a font object with specified size and path, adjusted to fit within the given image region.

    Parameters:
    txt (str): The text to be rendered with the font.
    sz (tuple): A tuple containing the height and width of an image region, used for font size.
    font_path (str): The path to the font file.

    Returns:
    ImageFont: An ImageFont object adjusted to fit within the given image region.
    r   皙?utf-8encoding.r   
   )intr   truetypePIL__version__splitgetsize	getlength)r
   r   r   	font_sizefontlengths         S/var/www/html/banglarbhumi/venv/lib/python3.11/site-packages/paddlex/utils/fonts.pycreate_fontr       s     BqECK  IiWEEED
3?  %%a())B..c""1%$$1~~	BqE)F233	!)YIIIK    333333?c                 P   t          |           dk    rt          |           nd}t          |d         |z  dz  |z            }t          |d          }t          j        ||d          t          t
          j                            d          d                   dk     rt          fd| D                       }nt          fd	| D                       }||d         k    rBt          ||d         z  |z            }t          |d          }t          j        ||d          S )
Nr   r   r   r   r   r   r   c                 F    g | ]}                     |          d          S )r   )r   .0cr   s     r   
<listcomp>z(create_font_vertical.<locals>.<listcomp>=   s(    >>>Qdll1ooa0>>>r!   c                 :    g | ]}                     |          S  )r   r%   s     r   r(   z(create_font_vertical.<locals>.<listcomp>?   s%    ===AdnnQ//===r!   )lenr   maxr   r   r   r   r   )	r
   r   r   scalenbase_font_sizemax_char_widthnew_sizer   s	           @r   create_font_verticalr2   4   s)    HHqLLCaAAS5011N,,Ni'JJJD
3?  %%a())B..>>>>#>>>??=======>>1~1->??x$$!)XHHHKr!   c                   2    e Zd ZddZed             Zd ZdS )FontNc                     |Gt          t          t                                                              rt          t                    }|| _        |s|J || _        d S d S N)r   strr	   is_file_local_path
_font_name)self	font_name
local_paths      r   __init__zFont.__init__J   sl    C,--..6688 7 !566
% 	(((('DOOO	( 	(r!   c                 F    | j         s|                                  | j         S r6   )r9   _get_offical_font)r;   s    r   pathz	Font.pathS   s*      	%""$$$r!   c                    t          t                    dz  | j        z                                                                  }t          |                                          st          d| j         |           || _        dS )z2
        Download the official font file.
        fontszDhttps://paddle-model-ecology.bj.bcebos.com/paddlex/PaddleX3.0/fonts/)url	save_pathN)r   r   r:   resolveas_posixr8   r   r9   )r;   r   s     r   r@   zFont._get_offical_fontZ   s     )__w.@IIKKTTVV	I&&(( 	l[_[jll#    %r!   )NN)__name__
__module____qualname__r>   propertyrA   r@   r*   r!   r   r4   r4   I   sR        ( ( ( (     X 
% 
% 
% 
% 
%r!   r4   zUsing the local font file(`z'`) specified by `LOCAL_FONT_FILE_PATH`!zPingFang-SC-Regular.ttf)r<   zsimfang.ttfz	latin.ttfzth.ttfzel.ttfz
korean.ttfz
arabic.ttfzcyrillic.ttfzkannada.ttfz
telugu.ttfz	tamil.ttfzdevanagari.ttf)r"   )pathlibr   r   r    r   cacher   r   flagsr	   r7   tupler    FreeTypeFontr2   r4   r8   warningPINGFANG_FONTSIMFANG_FONT
LATIN_FONTTH_FONTEL_FONTKOREAN_FONTARABIC_FONTCYRILLIC_FONTKANNADA_FONTTELUGU_FONT
TAMIL_FONTDEVANAGARI_FONTr*   r!   r   <module>r_      sE         



                         ' ' ' ' ' 'S e  	    6 03 	$'   *% % % % % % % %< 4 !!""**,, GOc&:ccc   8999tm,,,TK(((

$
"
"
"
$
"
"
"d\***d\***~...tm,,,d\***TK(((
$!1222r!   