understanding commited on
Commit
47c135d
·
verified ·
1 Parent(s): fe40008

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +9 -12
app.py CHANGED
@@ -33,8 +33,8 @@ class Config:
33
  # Directories (relative paths for container compatibility)
34
  PREDEFINED_TEMPLATES_DIR = "templates"
35
  OUTPUT_DIR = "generated_images"
36
- # Assumes arial.ttf is copied into the /app directory by the Dockerfile
37
- FONT_PATH = "arial.ttf"
38
 
39
  # Predefined Template Settings
40
  TEMPLATE_SIZE = (1200, 900) # Expected size of predefined template canvas
@@ -76,12 +76,9 @@ except OSError as e:
76
  # If directories cannot be created, the app likely cannot function
77
  raise SystemExit(f"FATAL: Cannot create directories {Config.PREDEFINED_TEMPLATES_DIR} or {Config.OUTPUT_DIR}") from e
78
 
79
- # Check for font file availability after setup
80
- # FONT_PATH is relative to WORKDIR /app
81
- if not os.path.exists(Config.FONT_PATH):
82
- logger.warning(f"Font file specified in Config ('{Config.FONT_PATH}') not found in the container's /app directory. Text rendering might use a system default font if available via fontconfig (installed via Dockerfile), or fail if Pillow finds no fallback.")
83
- else:
84
- logger.info(f"Font file '{Config.FONT_PATH}' found.")
85
 
86
  # --- Helper Functions ---
87
  def add_noise_to_image(img: Image.Image, intensity: float = 0.02) -> Image.Image:
@@ -152,8 +149,8 @@ def apply_template(user_image_path: str, caption: str, template_path: str) -> Op
152
  font_size = Config.MAX_FONT_SIZE // 2
153
  logger.debug(f"Loading font '{Config.FONT_PATH}' with size {font_size}")
154
  font = ImageFont.truetype(Config.FONT_PATH, font_size)
155
- except IOError:
156
- logger.warning(f"Failed to load font '{Config.FONT_PATH}'. Using Pillow's default.")
157
  font = ImageFont.load_default()
158
 
159
  # Wrap text according to configured width
@@ -278,8 +275,8 @@ def create_auto_template(user_image_path: str, caption: str, variant: int) -> Op
278
  font_size = random.randint(Config.MIN_FONT_SIZE, Config.MAX_FONT_SIZE)
279
  logger.debug(f"Loading font '{Config.FONT_PATH}' with size {font_size}")
280
  font = ImageFont.truetype(Config.FONT_PATH, font_size)
281
- except IOError:
282
- logger.warning(f"Failed to load font '{Config.FONT_PATH}'. Using Pillow's default.")
283
  font = ImageFont.load_default() # Fallback font
284
 
285
  # Wrap text
 
33
  # Directories (relative paths for container compatibility)
34
  PREDEFINED_TEMPLATES_DIR = "templates"
35
  OUTPUT_DIR = "generated_images"
36
+ # UPDATED: Use the font name "Arial". Pillow should find the system-installed font.
37
+ FONT_PATH = "Arial"
38
 
39
  # Predefined Template Settings
40
  TEMPLATE_SIZE = (1200, 900) # Expected size of predefined template canvas
 
76
  # If directories cannot be created, the app likely cannot function
77
  raise SystemExit(f"FATAL: Cannot create directories {Config.PREDEFINED_TEMPLATES_DIR} or {Config.OUTPUT_DIR}") from e
78
 
79
+ # Font check is now less critical as we rely on system fonts, but Pillow will log if "Arial" can't be found.
80
+ logger.info(f"Application will attempt to use font '{Config.FONT_PATH}' via system font discovery (fontconfig).")
81
+
 
 
 
82
 
83
  # --- Helper Functions ---
84
  def add_noise_to_image(img: Image.Image, intensity: float = 0.02) -> Image.Image:
 
149
  font_size = Config.MAX_FONT_SIZE // 2
150
  logger.debug(f"Loading font '{Config.FONT_PATH}' with size {font_size}")
151
  font = ImageFont.truetype(Config.FONT_PATH, font_size)
152
+ except IOError: # This can happen if font "Arial" is not found by Pillow
153
+ logger.warning(f"Failed to load font '{Config.FONT_PATH}' by name. Using Pillow's default. Ensure 'ttf-mscorefonts-installer' worked in Docker and fontconfig is effective.")
154
  font = ImageFont.load_default()
155
 
156
  # Wrap text according to configured width
 
275
  font_size = random.randint(Config.MIN_FONT_SIZE, Config.MAX_FONT_SIZE)
276
  logger.debug(f"Loading font '{Config.FONT_PATH}' with size {font_size}")
277
  font = ImageFont.truetype(Config.FONT_PATH, font_size)
278
+ except IOError: # This can happen if font "Arial" is not found by Pillow
279
+ logger.warning(f"Failed to load font '{Config.FONT_PATH}' by name. Using Pillow's default. Ensure 'ttf-mscorefonts-installer' worked in Docker and fontconfig is effective.")
280
  font = ImageFont.load_default() # Fallback font
281
 
282
  # Wrap text