Gradio_YOLOv5_Det/util/fonts_opt.py

69 lines
2.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# font management
# author: Zeng Yifu曾逸夫
# creation time: 2022-05-01
# email: zyfiy1314@163.com
# project homepage: https://gitee.com/CV_Lab/gradio_yolov5_det
import os
import sys
from pathlib import Path
import wget
from rich.console import Console
ROOT_PATH = sys.path[0] # Project root directory
# Chinese, English, Russian, Spanish, Arabic, Korean
fonts_list = ["SimSun.ttf", "TimesNewRoman.ttf", "malgun.ttf"] # font list
fonts_suffix = ["ttc", "ttf", "otf"] # font suffix
data_url_dict = {
"SimSun.ttf": "https://gitee.com/CV_Lab/gradio_yolov5_det/attach_files/1053539/download/SimSun.ttf",
"TimesNewRoman.ttf": "https://gitee.com/CV_Lab/gradio_yolov5_det/attach_files/1053537/download/TimesNewRoman.ttf",
"malgun.ttf": "https://gitee.com/CV_Lab/gradio_yolov5_det/attach_files/1053538/download/malgun.ttf",}
console = Console()
# create font library
def add_fronts(font_diff):
global font_name
for k, v in data_url_dict.items():
if k in font_diff:
font_name = v.split("/")[-1] # font name
Path(f"{ROOT_PATH}/fonts").mkdir(parents=True, exist_ok=True) # Create a directory
file_path = f"{ROOT_PATH}/fonts/{font_name}" # font path
try:
# Download font file
wget.download(v, file_path)
except Exception as e:
print("Path error! Program ended!")
print(e)
sys.exit()
else:
print()
console.print(f"{font_name} [bold green]font file download complete![/bold green] has been saved to: {file_path}")
# Determine the font file
def is_fonts(fonts_dir):
if os.path.isdir(fonts_dir):
# if the font library exists
f_list = os.listdir(fonts_dir) # local font library
font_diff = list(set(fonts_list).difference(set(f_list)))
if font_diff != []:
# font does not exist
console.print("[bold red] font does not exist, loading...[/bold red]")
add_fronts(font_diff) # Create a font library
else:
console.print(f"{fonts_list}[bold green]font already exists![/bold green]")
else:
# The font library does not exist, create a font library
console.print("[bold red]font library does not exist, creating...[/bold red]")
add_fronts(fonts_list) # Create a font library