mirror of
https://github.com/MariusQuabeck/logo-wall-generator.git
synced 2025-10-25 03:01:32 +02:00
No description
| logos | ||
| .gitignore | ||
| example_output.png | ||
| LICENSE | ||
| logo_wall_generator.py | ||
| README.md | ||
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.svgformats - 🧭 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
Step 1: Set up a virtual environment (recommended)
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
- Add your logo files into
logos/(supports.png,.jpg,.jpeg,.webp,.svg). - Activate the virtual environment (see above).
- 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
Here’s a preview of a generated logo wall:
Customization
You can tweak the following parameters in the script:
CANVAS_WIDTH/CANVAS_HEIGHT— size of the output imagePADDING— spacing between logosBACKGROUND_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.
