Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8115be4771 | ||
|
|
6c93712961 | ||
|
|
9591638263 | ||
|
|
bb195b17e2 | ||
|
|
44365fa3ea | ||
|
|
d6fc97799f | ||
|
|
8f439e074e | ||
|
|
fe2447ef6c | ||
|
|
d4e337eeb3 | ||
|
|
4548bf62a4 | ||
|
|
63ddd51d0b | ||
|
|
aefa323bab |
@@ -26,12 +26,8 @@ class GridAnnotationNode(BaseNode):
|
|||||||
font_size: int,
|
font_size: int,
|
||||||
) -> tuple[Annotation]:
|
) -> tuple[Annotation]:
|
||||||
font = ImageFont.truetype(str(STATIC_PATH / "Roboto-Regular.ttf"), size=font_size)
|
font = ImageFont.truetype(str(STATIC_PATH / "Roboto-Regular.ttf"), size=font_size)
|
||||||
column_texts_list = self._set_value_to_texts_list(
|
column_texts_list = self._get_texts_from_string(column_texts)
|
||||||
self._get_texts_from_string(column_texts),
|
row_texts_list = self._get_texts_from_string(row_texts)
|
||||||
)
|
|
||||||
row_texts_list = self._set_value_to_texts_list(
|
|
||||||
self._get_texts_from_string(row_texts),
|
|
||||||
)
|
|
||||||
|
|
||||||
result = Annotation(column_texts=column_texts_list, row_texts=row_texts_list, font=font)
|
result = Annotation(column_texts=column_texts_list, row_texts=row_texts_list, font=font)
|
||||||
return (result,)
|
return (result,)
|
||||||
@@ -42,8 +38,3 @@ class GridAnnotationNode(BaseNode):
|
|||||||
for i in string.split(";")
|
for i in string.split(";")
|
||||||
if (result := i.strip()) != ""
|
if (result := i.strip()) != ""
|
||||||
]
|
]
|
||||||
|
|
||||||
def _set_value_to_texts_list(self, texts_list: list[str]) -> list[str]:
|
|
||||||
if not texts_list:
|
|
||||||
return ["None"]
|
|
||||||
return texts_list
|
|
||||||
|
|||||||
+31
-24
@@ -92,19 +92,24 @@ def _create_grid_annotation(
|
|||||||
row_texts: list[str],
|
row_texts: list[str],
|
||||||
font: ImageFont.FreeTypeFont,
|
font: ImageFont.FreeTypeFont,
|
||||||
) -> Image.Image:
|
) -> Image.Image:
|
||||||
if not column_texts or not row_texts:
|
if not column_texts and not row_texts:
|
||||||
raise ValueError("Column text or row text is empty")
|
raise ValueError("Column text and row text is empty")
|
||||||
|
|
||||||
grid = grid_info.image
|
grid = grid_info.image
|
||||||
left_padding = int(
|
left_padding = 0
|
||||||
max(
|
top_padding = 0
|
||||||
font.getlength(splitted_text)
|
|
||||||
for raw_text in row_texts
|
if row_texts:
|
||||||
for splitted_text in raw_text.split("\n")
|
left_padding = int(
|
||||||
|
max(
|
||||||
|
font.getlength(splitted_text)
|
||||||
|
for raw_text in row_texts
|
||||||
|
for splitted_text in raw_text.split("\n")
|
||||||
|
)
|
||||||
|
+ font.getlength(WIDEST_LETTER)*2
|
||||||
)
|
)
|
||||||
+ font.getlength(WIDEST_LETTER)*2
|
if column_texts:
|
||||||
)
|
top_padding = max(elem.count("\n") for elem in column_texts) * int(font.size) + int(font.size * 2)
|
||||||
top_padding = int(font.size * 2)
|
|
||||||
|
|
||||||
image = Image.new(
|
image = Image.new(
|
||||||
"RGB",
|
"RGB",
|
||||||
@@ -116,20 +121,22 @@ def _create_grid_annotation(
|
|||||||
draw.font = font # type: ignore
|
draw.font = font # type: ignore
|
||||||
|
|
||||||
_paste_image_to_lower_left_corner(image, grid)
|
_paste_image_to_lower_left_corner(image, grid)
|
||||||
_draw_column_text(
|
if column_texts:
|
||||||
draw=draw,
|
_draw_column_text(
|
||||||
texts=column_texts,
|
draw=draw,
|
||||||
grid_info=grid_info,
|
texts=column_texts,
|
||||||
left_padding=left_padding,
|
grid_info=grid_info,
|
||||||
top_padding=top_padding,
|
left_padding=left_padding,
|
||||||
)
|
top_padding=top_padding,
|
||||||
_draw_row_text(
|
)
|
||||||
draw=draw,
|
if row_texts:
|
||||||
texts=row_texts,
|
_draw_row_text(
|
||||||
grid_info=grid_info,
|
draw=draw,
|
||||||
left_padding=left_padding,
|
texts=row_texts,
|
||||||
top_padding=top_padding,
|
grid_info=grid_info,
|
||||||
)
|
left_padding=left_padding,
|
||||||
|
top_padding=top_padding,
|
||||||
|
)
|
||||||
|
|
||||||
return image
|
return image
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user