Skip to main content

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.0.tar.gz (60.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

figwizz-0.3.0-py3-none-any.whl (66.8 kB view details)

Uploaded Python 3

File details

Details for the file figwizz-0.3.0.tar.gz.

File metadata

  • Download URL: figwizz-0.3.0.tar.gz
  • Upload date:
  • Size: 60.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for figwizz-0.3.0.tar.gz
Algorithm Hash digest
SHA256 61f1749cabaca8d759095f98763c8f68499a71df865ba15d26810ee65b15bbf2
MD5 7b7cbb180b6ab3120440893a0b4cf77a
BLAKE2b-256 8de98440528fc84bddd2813c1dfdef55ec75002419c4d46b3b6670cbd5962c29

See more details on using hashes here.

File details

Details for the file figwizz-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: figwizz-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 66.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for figwizz-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 96639c0154c6e8c67b6f05026d66af92c99b440f95e36ef9f93a47f8eb5d9492
MD5 722965c5a6287a38ba46b3dfe05cddd2
BLAKE2b-256 0edf3899423f3e9677ac8edbd70e3f5670f8ef76cac740cb24a3faa596d34afe

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page