No description
Find a file
2025-06-10 14:13:07 +02:00
logos Add empty logos folder 2025-04-02 16:41:37 +02:00
.gitignore Add .gitignore to exclude venv and generated files 2025-04-02 18:14:42 +02:00
example_output.png add script and example output image 2025-04-02 16:15:31 +02:00
LICENSE Initial commit 2025-04-02 16:08:12 +02:00
logo_wall_generator.py add progress feedback 2025-06-10 14:13:07 +02:00
README.md update README 2025-06-10 14:01:31 +02:00

Logo Wall Generator 🧱🖼️

Generate a clean, padded 1920×1080 logo wall from assorted image files — perfect for associations, events, and sponsor showcases.

Features

  • 🖼️ Fixed output size: 1920x1080
  • 🧩 Automatically arranges logos in a grid with padding
  • 📂 Supports .png, .jpg, .jpeg, .webp, and .svg formats
  • 🧭 Logos sorted alphabetically using case-insensitive, locale-aware logic
  • 🧼 Preserves logo aspect ratios with white padding background
  • 🔁 Easy to update — just change files in the logos/ folder and rerun
  • 📋 Shows progress in terminal, including skipped files with error messages
  • ⚠️ SVGs with external entities are supported (trusted input only via unsafe=True).

Installation

cd path/to/logo-wall-generator
python3 -m venv venv
source venv/bin/activate

Step 2: Install Python dependencies

pip install pillow cairosvg

On macOS, you may also need these system libraries if SVGs fail:

brew install cairo pango gdk-pixbuf libffi

Usage

First-time setup

  1. Add your logo files into logos/ (supports .png, .jpg, .jpeg, .webp, .svg).
  2. Activate the virtual environment (see above).
  3. Run the script:
python logo_wall_generator.py

The output will be saved as logo_wall.png in the same directory.

After setup (future runs)

cd path/to/logo-wall-generator
source venv/bin/activate
python logo_wall_generator.py

Example Output

Heres a preview of a generated logo wall:

Example output

Customization

You can tweak the following parameters in the script:

  • CANVAS_WIDTH / CANVAS_HEIGHT — size of the output image
  • PADDING — spacing between logos
  • BACKGROUND_COLOR — RGB tuple (default is white)

TODO

  • create snap and brew packages
    • create a launcher that opens the logo folder and guides trough the process
  • add option for background image

License

This project is licensed under the GNU GPL v3.
See the LICENSE file for details.