gaotingquan 6 місяців тому
батько
коміт
ff29c8d4de
2 змінених файлів з 13 додано та 3 видалено
  1. 2 0
      paddlex/utils/flags.py
  2. 11 3
      paddlex/utils/fonts/__init__.py

+ 2 - 0
paddlex/utils/flags.py

@@ -52,6 +52,8 @@ FLAGS_json_format_model = get_flag_from_env_var("FLAGS_json_format_model", True)
 USE_PIR_TRT = get_flag_from_env_var("PADDLE_PDX_USE_PIR_TRT", True)
 DISABLE_DEV_MODEL_WL = get_flag_from_env_var("PADDLE_PDX_DISABLE_DEV_MODEL_WL", False)
 DISABLE_CINN_MODEL_WL = get_flag_from_env_var("PADDLE_PDX_DISABLE_CINN_MODEL_WL", False)
+LOCAL_FONT_FILE_PATH = get_flag_from_env_var("PADDLE_PDX_LOCAL_FONT_FILE_PATH", None)
+
 
 # Inference Benchmark
 INFER_BENCHMARK = get_flag_from_env_var("PADDLE_PDX_INFER_BENCHMARK", False)

+ 11 - 3
paddlex/utils/fonts/__init__.py

@@ -19,6 +19,7 @@ from PIL import ImageFont
 
 from .. import logging
 from ..download import download
+from ..flags import LOCAL_FONT_FILE_PATH
 
 
 def get_font_file_path(file_name: str) -> str:
@@ -29,7 +30,7 @@ def get_font_file_path(file_name: str) -> str:
     str: The path to the font file.
     """
     font_path = (Path(__file__).parent / file_name).resolve().as_posix()
-    if not Path(font_path).exists():
+    if not Path(font_path).is_file():
         download(
             url=f"https://paddle-model-ecology.bj.bcebos.com/paddlex/PaddleX3.0/fonts/{file_name}",
             save_path=font_path,
@@ -85,5 +86,12 @@ def create_font_vertical(
     return font
 
 
-PINGFANG_FONT_FILE_PATH = get_font_file_path("PingFang-SC-Regular.ttf")
-SIMFANG_FONT_FILE_PATH = get_font_file_path("simfang.ttf")
+if Path(str(LOCAL_FONT_FILE_PATH)).is_file():
+    logging.warning(
+        f"Using the local font file(`{LOCAL_FONT_FILE_PATH}`) specified by `LOCAL_FONT_FILE_PATH`!"
+    )
+    PINGFANG_FONT_FILE_PATH = LOCAL_FONT_FILE_PATH
+    SIMFANG_FONT_FILE_PATH = LOCAL_FONT_FILE_PATH
+else:
+    PINGFANG_FONT_FILE_PATH = get_font_file_path("PingFang-SC-Regular.ttf")
+    SIMFANG_FONT_FILE_PATH = get_font_file_path("simfang.ttf")