Toolkit for programmatic figure design
Project description
FigWizz 
Python toolkit for programmatic figure design.
- Easily convert images to different formats
- Stitch keynote / powerpoint slides into auto-cropped images
- Stitch multiple figures to a single PDF
- Scrape images from publication PDFs / websites
- Download stock images from Unsplash / Pixabay
- Batch-generate images from prompts in a single line
- Make image grids, decks, and icons (e.g. hexicons)
Installation
Basic installation from PyPI:
pip install figwizz
With optional dependencies:
# For AI image generation
pip install 'figwizz[genai]'
# For PDF processing
pip install 'figwizz[pdf]'
# For SVG support
pip install 'figwizz[svg]'
# For development
pip install 'figwizz[dev]'
# For documentation
pip install 'figwizz[docs]'
# Install all optional dependencies
pip install 'figwizz[genai,pdf,svg]'
Quick Start
Image Conversion
from figwizz import convert_image
# Convert image format
convert_image("input.png", "jpg")
# Convert with custom settings
convert_image("input.png", "pdf", delete_original=False)
Image Modification
from figwizz import make_image_opaque, ngon_crop
# Make transparent image opaque
make_image_opaque("logo.png", bg_color="white")
# Create hexagonal crop
ngon_crop("photo.jpg", sides=6, crop_size=512)
Presentation Conversion
from figwizz import slides_to_images, images_to_pdf
# Convert PowerPoint/Keynote to images
slides_to_images("presentation.pptx", output_dir="slides/")
# Stitch images into PDF
images_to_pdf("slides/", output_path="presentation.pdf")
Stock Image Download
from figwizz import download_stock_images
# Download from Unsplash or Pixabay
download_stock_images(
query="nature landscape",
n_images=10,
output_dir="stock_images/",
source="unsplash" # or "pixabay"
)
AI Image Generation
from figwizz import generate_images
# Generate images from prompts
generate_images(
prompts=["a serene mountain lake", "abstract geometric art"],
model="gpt-image-1",
output_dir="generated/"
)
Image Grids and Display
from figwizz import make_image_grid
# Create and display image grid
images = ["img1.jpg", "img2.jpg", "img3.jpg", "img4.jpg"]
titles = ["Sample 1", "Sample 2", "Sample 3", "Sample 4"]
make_image_grid(images, titles=titles, max_cols=2)
Hexicon Creation
from figwizz.workflows import make_hexicon
# Create hexagonal icon
hexicon = make_hexicon(
"logo.png",
size=512,
border_thickness=10,
border_color="auto"
)
hexicon.save("hexicon.png")
Command-Line Interface
# Download stock images
figwizz download-stock "mountain landscape" --n-images 5 --source unsplash
# Generate AI images
figwizz generate "abstract art" --model dall-e-3 --n-images 3
# Convert presentation to images
figwizz slides-to-images presentation.pptx --output-dir slides/
# Extract images from PDF or URL
figwizz extract-images document.pdf --output-dir extracted/
figwizz extract-images https://example.com/page --output-dir scraped/
Documentation
Full documentation available at: https://colinconwell.github.io/FigWizz
Environment Variables
For API-based features, set up a .env.local file:
# For stock image downloads
UNSPLASH_ACCESS_KEY=your_unsplash_key
PIXABAY_API_KEY=your_pixabay_key
# For AI image generation
OPENAI_API_KEY=your_openai_key
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
figwizz-0.3.1.tar.gz
(61.6 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
figwizz-0.3.1-py3-none-any.whl
(68.6 kB
view details)
File details
Details for the file figwizz-0.3.1.tar.gz.
File metadata
- Download URL: figwizz-0.3.1.tar.gz
- Upload date:
- Size: 61.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a644fa737d904362e8524bee75d04c70573eb2a6dd366f5dae5307d19b530c6f
|
|
| MD5 |
e64a42f758cd3b849bef65da5c5c0b9d
|
|
| BLAKE2b-256 |
d846518c699e0a9969fa22398de14f9771e72c8b4322e0daa3a0e9aa2eef56c8
|
File details
Details for the file figwizz-0.3.1-py3-none-any.whl.
File metadata
- Download URL: figwizz-0.3.1-py3-none-any.whl
- Upload date:
- Size: 68.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
67baf7457f4c16deb2eb9e9a964a22b942c7b0f3b1dc69d701422e9ba0678c5c
|
|
| MD5 |
b7df35e50200d454cf780edc521968ad
|
|
| BLAKE2b-256 |
cfb31802e12c3aea9de58c025fe97d36bd41a0e5d456271be19fee1d473f9eaf
|