mirror of
https://github.com/ChuckBuilds/LEDMatrix.git
synced 2026-04-10 21:03:01 +00:00
address bitmap baseline in text rednering
This commit is contained in:
@@ -171,15 +171,14 @@ class OfTheDayManager:
|
|||||||
for char in text:
|
for char in text:
|
||||||
face.load_char(char)
|
face.load_char(char)
|
||||||
bitmap = face.glyph.bitmap
|
bitmap = face.glyph.bitmap
|
||||||
# Adjust y position to account for BDF baseline
|
# Use direct positioning without bitmap_top offset
|
||||||
baseline_offset = face.glyph.bitmap_top
|
|
||||||
for i in range(bitmap.rows):
|
for i in range(bitmap.rows):
|
||||||
for j in range(bitmap.width):
|
for j in range(bitmap.width):
|
||||||
byte_index = i * bitmap.pitch + (j // 8)
|
byte_index = i * bitmap.pitch + (j // 8)
|
||||||
if byte_index < len(bitmap.buffer):
|
if byte_index < len(bitmap.buffer):
|
||||||
byte = bitmap.buffer[byte_index]
|
byte = bitmap.buffer[byte_index]
|
||||||
if byte & (1 << (7 - (j % 8))):
|
if byte & (1 << (7 - (j % 8))):
|
||||||
draw.point((x + j, y + baseline_offset + i), fill=color)
|
draw.point((x + j, y + i), fill=color)
|
||||||
x += face.glyph.advance.x >> 6
|
x += face.glyph.advance.x >> 6
|
||||||
return x - orig_x
|
return x - orig_x
|
||||||
|
|
||||||
@@ -193,10 +192,11 @@ class OfTheDayManager:
|
|||||||
matrix_height = self.display_manager.matrix.height
|
matrix_height = self.display_manager.matrix.height
|
||||||
title_face = self.title_face
|
title_face = self.title_face
|
||||||
body_face = self.body_face
|
body_face = self.body_face
|
||||||
# Get font heights for BDF (bitmap) fonts
|
|
||||||
|
# Get font heights and set consistent positioning
|
||||||
title_height = title_face.height
|
title_height = title_face.height
|
||||||
body_height = body_face.height
|
body_height = body_face.height
|
||||||
|
|
||||||
# --- Draw Title (always at top, ic8x8u.bdf) ---
|
# --- Draw Title (always at top, ic8x8u.bdf) ---
|
||||||
title_y = 0 # Start at top
|
title_y = 0 # Start at top
|
||||||
self._draw_bdf_text(draw, title_face, title, 1, title_y, color=self.title_color)
|
self._draw_bdf_text(draw, title_face, title, 1, title_y, color=self.title_color)
|
||||||
@@ -209,12 +209,12 @@ class OfTheDayManager:
|
|||||||
title_width = title_width // 64
|
title_width = title_width // 64
|
||||||
|
|
||||||
# Underline below title
|
# Underline below title
|
||||||
underline_y = title_height + 1 # Just below the title
|
underline_y = title_height # Just below the title
|
||||||
draw.line([(1, underline_y), (1 + title_width, underline_y)], fill=self.title_color, width=1)
|
draw.line([(1, underline_y), (1 + title_width, underline_y)], fill=self.title_color, width=1)
|
||||||
|
|
||||||
# --- Draw Subtitle or Description (rotating, cozette.bdf) ---
|
# --- Draw Subtitle or Description (rotating, cozette.bdf) ---
|
||||||
# Start subtitle/description below the title with proper spacing
|
# Start subtitle/description below the title with proper spacing
|
||||||
y_start = title_height + 3 # Leave space between title and subtitle
|
y_start = title_height + 2 # Leave space between title and subtitle
|
||||||
available_height = matrix_height - y_start
|
available_height = matrix_height - y_start
|
||||||
available_width = matrix_width - 2
|
available_width = matrix_width - 2
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user