The Shaper System Full Release | The Starter & The Full Versions Free Download

Nice job

1 Like

@Erol Great system! Thank you for sharing but the links are broken :broken_heart:

Links are back up :slight_smile:
Appreciate your system Erol :slight_smile: :slight_smile: 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