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
Metadata
Release files for figwizz 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| figwizz-0.3.1.tar.gz | 61.6 kB | Without provenance | Details for figwizz-0.3.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| figwizz-0.3.1-py3-none-any.whl | Python 3 | none | any | Details for figwizz-0.3.1-py3-none-any.whl |
Total release size: 130.2 kB
Release files / figwizz-0.3.1.tar.gz
| Download URL | figwizz-0.3.1.tar.gz |
|---|---|
| Size | 61.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a644fa737d904362e8524bee75d04c70573eb2a6dd366f5dae5307d19b530c6f
|
|
BLAKE2b-256 checksum How to use checksums |
d846518c699e0a9969fa22398de14f9771e72c8b4322e0daa3a0e9aa2eef56c8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / figwizz-0.3.1-py3-none-any.whl
| Download URL | figwizz-0.3.1-py3-none-any.whl |
|---|---|
| Size | 68.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
67baf7457f4c16deb2eb9e9a964a22b942c7b0f3b1dc69d701422e9ba0678c5c
|
|
BLAKE2b-256 checksum How to use checksums |
cfb31802e12c3aea9de58c025fe97d36bd41a0e5d456271be19fee1d473f9eaf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Security for figwizz 0.3.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.