# thumbnail.py — Script Guide Resizes images to a max width, preserving aspect ratio, no cropping. Outputs compressed JPEGs to `thumbnails/` subfolders within each collection folder. --- ## Virtual Environment ```bash python3 -m venv .venv ``` ## Requirements ```bash pip install Pillow ``` --- ## Usage From the repo root: ```bash python Images/thumbnail.py ``` From inside the Images folder: ```bash python thumbnail.py ``` --- ## What it does 1. Iterates over each collection folder (`WayBack`, `YourNomadSoul`, `MysterWizzard`, `Exopraxist`) 2. Finds all `.jpg`, `.jpeg`, `.png` files (case-insensitive) 3. Resizes any image wider than `MAX_WIDTH` — narrower images are passed through unchanged 4. Converts to RGB JPEG (handles PNG transparency, palette mode, etc.) 5. Saves to `{collection}/thumbnails/{original_stem}.jpg` at quality 85 6. Prints a before/after size summary --- ## Adapting for different uses ### Change the output size Edit `MAX_WIDTH` at the top of the script: ```python MAX_WIDTH = 360 # current — web gallery thumbnails MAX_WIDTH = 880 # larger thumbnails or preview images MAX_WIDTH = 1920 # full-width web images, still compressed ``` ### Change JPEG quality Edit `QUALITY` at the top: ```python QUALITY = 85 # current — good balance of size and sharpness QUALITY = 75 # smaller files, slight quality loss (fine for thumbnails) QUALITY = 92 # near-lossless, larger files ``` ### Change which folders are processed Edit the `COLLECTIONS` list: ```python COLLECTIONS = ["WayBack", "YourNomadSoul", "MysterWizzard", "Exopraxist"] ``` Add, remove, or rename entries to match your folder structure. ### Run on a different folder entirely Change `base` in the `main()` function: ```python base = Path("/path/to/your/images") ``` Or pass it as a command-line argument — see the adaptation note below. ### Process a flat folder (no subfolders) Replace the collection loop with a direct scan: ```python images = sorted(f for f in base.iterdir() if f.suffix in EXTENSIONS and f.is_file()) thumb_dir = base / "thumbnails" for src in images: dest = thumb_dir / (src.stem + ".jpg") make_thumbnail(src, dest) ``` ### Accept a path argument from the command line Add to `main()` before the loop: ```python import sys if len(sys.argv) > 1: base = Path(sys.argv[1]) ``` Then run as: ```bash python thumbnail.py /path/to/images ``` --- ## Output structure ``` Images/ WayBack/ IMG_0001.JPG ← original (can delete after upload) thumbnails/ IMG_0001.jpg ← resized thumbnail → upload this YourNomadSoul/ ... ``` --- ## After running 1. Commit the `thumbnails/` folders to git — these are small enough to live in the repo 2. Delete the originals from the local repo — do not commit large image files to git 3. Full-res originals stay on FileBrowser (already uploaded) — the gallery lightbox and download button pull from there