[Update] OverlayImage: Improve font loading logic with error handling for font file paths
This commit is contained in:
@@ -67,9 +67,16 @@ class OverlayImage:
|
||||
font_path = os_path.join(self.root_path, font_family)
|
||||
font = ImageFont.truetype(font_path, font_size)
|
||||
except Exception:
|
||||
errorLogging()
|
||||
font_path = os_path.join(os_path.dirname(__file__), "..", "..", "..", "fonts", font_family)
|
||||
font = ImageFont.truetype(font_path, font_size)
|
||||
# overlayフォルダから操作している場合
|
||||
if os_path.exists(os_path.join(os_path.dirname(__file__), "..", "..", "..", "fonts", font_family)):
|
||||
font_path = os_path.join(os_path.dirname(__file__), "..", "..", "..", "fonts", font_family)
|
||||
font = ImageFont.truetype(font_path, font_size)
|
||||
elif os_path.exists(os_path.join(os_path.dirname(__file__), "fonts", font_family)):
|
||||
# src-pythonフォルダから操作している場合
|
||||
font_path = os_path.join(os_path.dirname(__file__), "fonts", font_family)
|
||||
font = ImageFont.truetype(font_path, font_size)
|
||||
else:
|
||||
raise FileNotFoundError(f"Font file not found: {font_family}")
|
||||
|
||||
text_width = draw.textlength(text, font)
|
||||
character_width = text_width // len(text)
|
||||
@@ -171,9 +178,14 @@ class OverlayImage:
|
||||
font_path = os_path.join(self.root_path, font_family)
|
||||
font = ImageFont.truetype(font_path, font_size)
|
||||
except Exception:
|
||||
errorLogging()
|
||||
font_path = os_path.join(os_path.dirname(__file__), "..", "..", "..", "fonts", font_family)
|
||||
font = ImageFont.truetype(font_path, font_size)
|
||||
if os_path.exists(os_path.join(os_path.dirname(__file__), "..", "..", "..", "fonts", font_family)):
|
||||
font_path = os_path.join(os_path.dirname(__file__), "..", "..", "..", "fonts", font_family)
|
||||
font = ImageFont.truetype(font_path, font_size)
|
||||
elif os_path.exists(os_path.join(os_path.dirname(__file__), "fonts", font_family)):
|
||||
font_path = os_path.join(os_path.dirname(__file__), "fonts", font_family)
|
||||
font = ImageFont.truetype(font_path, font_size)
|
||||
else:
|
||||
raise FileNotFoundError(f"Font file not found: {font_family}")
|
||||
|
||||
# 改行を含んだtextの最大の文字数を計算する
|
||||
text_width = max(draw.textlength(line, font) for line in text.split("\n"))
|
||||
@@ -207,9 +219,16 @@ class OverlayImage:
|
||||
font_path = os_path.join(self.root_path, self.LANGUAGES["Default"])
|
||||
font = ImageFont.truetype(font_path, font_size)
|
||||
except Exception:
|
||||
errorLogging()
|
||||
font_path = os_path.join(os_path.dirname(__file__), "..", "..", "..", "fonts", self.LANGUAGES["Default"])
|
||||
font = ImageFont.truetype(font_path, font_size)
|
||||
# overlayフォルダから操作している場合
|
||||
if os_path.exists(os_path.join(os_path.dirname(__file__), "..", "..", "..", "fonts", self.LANGUAGES["Default"])):
|
||||
font_path = os_path.join(os_path.dirname(__file__), "..", "..", "..", "fonts", self.LANGUAGES["Default"])
|
||||
font = ImageFont.truetype(font_path, font_size)
|
||||
elif os_path.exists(os_path.join(os_path.dirname(__file__), "fonts", self.LANGUAGES["Default"])):
|
||||
# src-pythonフォルダから操作している場合
|
||||
font_path = os_path.join(os_path.dirname(__file__), "fonts", self.LANGUAGES["Default"])
|
||||
font = ImageFont.truetype(font_path, font_size)
|
||||
else:
|
||||
raise FileNotFoundError(f"Font file not found: {self.LANGUAGES['Default']}")
|
||||
|
||||
text_height = font_size + ui_padding
|
||||
text_width = draw.textlength(date_time, font)
|
||||
|
||||
Reference in New Issue
Block a user