From 9aa5655eff228a88bee9078540a33e2d9e328188 Mon Sep 17 00:00:00 2001 From: Gregory Marco Date: Sun, 13 Jul 2025 21:21:34 -0500 Subject: [PATCH] Make make_sheets output one-file-per-page by default. --- yagicard/__init__.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/yagicard/__init__.py b/yagicard/__init__.py index 256f2be..8c4188f 100755 --- a/yagicard/__init__.py +++ b/yagicard/__init__.py @@ -311,7 +311,7 @@ def make_set (card_set, target_directory, default_frame, frames={}): with open(os.path.join(target_directory, "index.html"), "w") as index_html: index_html.write("\n".join(card_index)) -def make_sheets (set_filename, scale_factor=(1, 1), card_size=None): +def make_sheets (set_filename, scale_factor=(1, 1), card_size=None, single_file=False): if os.path.isfile(set_filename): set_filename = os.path.splitext(set_filename)[0] @@ -343,13 +343,21 @@ def make_sheets (set_filename, scale_factor=(1, 1), card_size=None): cards = [] pages.append(cards) - sheet_size = (page_size[0], page_size[1] * len(pages)) - sheet = Image.new("RGBA", sheet_size) - for i in range(0, len(pages)): - for card in pages[i]: - sheet.paste(card[0], (card[1][0], card[1][1] + (page_size[1] * i))) + if single_file: + sheet_size = (page_size[0], page_size[1] * len(pages)) + sheet = Image.new("RGBA", sheet_size) + for i in range(0, len(pages)): + for card in pages[i]: + sheet.paste(card[0], (card[1][0], card[1][1] + (page_size[1] * i))) - sheet.save(f"{set_filename}.png") + sheet.save(f"{set_filename}.png") + else: + for i in range(0, len(pages)): + sheet = Image.new("RGBA", page_size) + for card in pages[i]: + sheet.paste(card[0], card[1]) + + sheet.save(f"{set_filename}_{i}.png") def main(): yagicard_root = util.find_nearest(".", lambda name: name == YAGICARDFILE)