Nice job
1 Like
@Erol Great system! Thank you for sharing but the links are broken ![]()
Links are back up ![]()
Appreciate your system Erol
Thanks for releasing it!
I like running the Flash app via Ruffle on OSX, but I still prefer physical flashcards. I converted the 00-99 images into a pdf. Shrink to fit for A4 to make small flashcards and write the numbers on the back:
00-99 pdf
If you want to make physical flashcards this python script can help:
from PIL import Image, ImageOps
import os
import math
# Set the dimensions of the contact sheet
sheet_width = 8 # Number of columns
sheet_height = 8 # Number of rows
# Set the dimensions of the images
image_width = 460
image_height = 460
# Get a list of all image filenames in the directory
image_filenames = [filename for filename in os.listdir() if filename.lower().endswith(('.jpg', '.jpeg', '.png'))]
# Sort the image filenames numerically
image_filenames.sort(key=lambda x: int(x.split('.')[0])) # Assumes filenames are numbers with extensions
# Calculate the number of pages needed
total_images = len(image_filenames)
images_per_page = sheet_width * sheet_height
total_pages = math.ceil(total_images / images_per_page)
# Create a new PDF
pdf_filename = "contact_sheet.pdf"
# Create an empty PDF file
with open(pdf_filename, "wb") as f:
pass
# Loop through each page
for page_num in range(total_pages):
# Create a new blank contact sheet
contact_sheet = Image.new('RGB', (sheet_width * image_width, sheet_height * image_height), 'white')
# Loop through images for the current page
for idx in range(images_per_page * page_num, min(images_per_page * (page_num + 1), total_images)):
x = ((idx - images_per_page * page_num) % sheet_width) * image_width
y = ((idx - images_per_page * page_num) // sheet_width) * image_height
img = Image.open(image_filenames[idx])
img = img.convert('RGBA') # Convert to RGBA mode for transparency support
img_with_white_bg = Image.new('RGBA', img.size, 'white')
img_with_white_bg.paste(img, (0, 0), img)
img_with_white_bg.thumbnail((image_width, image_height))
contact_sheet.paste(img_with_white_bg, (x, y))
# Save the current contact sheet as a page in the PDF
contact_sheet.save(pdf_filename, format='PDF', append=True)
print("PDF created successfully!")
I hope this helps someone.
1 Like
Hey there!
The links given in the post no longer work!
https://paolist.com/the-shaper-system/
1 Like