Skip to main content

Excel Pixel Art

Convert images to Excel pixel art and back. Each cell becomes a pixel with its background colour matching the original image.

Installation

pip install excel-pixel-art

Or install from source:

git clone https://github.com/luigipascal/excelart.git
cd excelart
pip install -e .

Usage

Convert Image to Excel

image2xlsx photo.png
image2xlsx photo.png -o output.xlsx
image2xlsx photo.png --max-size 150

Options:

  • -o, --output: Output Excel file path (default: <input>_excel.xlsx)
  • --max-size: Maximum dimension in cells (default: 100)

Convert Excel Back to Image

xlsx2image output.xlsx
xlsx2image output.xlsx -o recovered.png
xlsx2image output.xlsx --sheet Sheet1

Options:

  • -o, --output: Output image path (default: <input>_reconstructed.png)
  • --sheet: Worksheet name to use (default: 'Image' if present, else active)
  • --background R,G,B: Background colour for missing cells (default: 0,0,0)
  • --no-autocrop: Disable auto-crop to solid-fill bounds

QA & Verification

# Compare with original for fidelity check
xlsx2image output.xlsx --compare original.png

# Generate visual diff heatmap
xlsx2image output.xlsx --compare original.png --diff-image diff.png

# CI pass/fail with threshold
xlsx2image output.xlsx --compare original.png --diff-threshold 5

Python API

from excel_pixel_art import image_to_excel, excel_to_image, compare_images

# Convert image to Excel
image_to_excel("photo.png", "output.xlsx", max_size=100)

# Convert back
excel_to_image("output.xlsx", "recovered.png")

# Compare for QA
compare_images("photo.png", "recovered.png", diff_output="diff.png", diff_threshold=5)

How It Works

  1. Image → Excel: The image is resized to fit within max_size cells, maintaining aspect ratio. Each pixel becomes a cell with a solid fill colour matching the RGB value.

  2. Excel → Image: Cells with solid fills are read back, extracting their ARGB colour values. Auto-crop detects the actual pixel bounds, ignoring stray formatting.

  3. QA Tools: The fidelity report compares reconstructed images against originals, with optional diff heatmaps and threshold-based pass/fail for CI integration.

Features

  • ARGB colour handling - Proper Excel colour format (no transparency bugs)
  • Fill caching - Fast generation even for images with thousands of unique colours
  • Auto-crop - Ignores stray formatting outside the pixel grid
  • Robust extraction - Handles both fgColor and start_color patterns
  • CI-friendly - Threshold-based pass/fail for automated testing

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

excel_pixel_art-1.0.0.tar.gz (28.6 kB view details)

Uploaded Source

Built Distribution

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

excel_pixel_art-1.0.0-py3-none-any.whl (9.3 kB view details)

Uploaded Python 3

File details

Details for the file excel_pixel_art-1.0.0.tar.gz.

File metadata

  • Download URL: excel_pixel_art-1.0.0.tar.gz
  • Upload date:
  • Size: 28.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for excel_pixel_art-1.0.0.tar.gz
Algorithm Hash digest
SHA256 c0ee16dfc8cd8f18f8073abd92cfa495de426c950ddd835ba8f6b572903d8c6c
MD5 6cf0155d8c9bc48572c3e0517b6a4d6f
BLAKE2b-256 c2e7d8f0cf7ff1b6180d39f71d1c7061474d3fd969936c7bc3401e43234f9f04

See more details on using hashes here.

Provenance

The following attestation bundles were made for excel_pixel_art-1.0.0.tar.gz:

Publisher: publish.yml on luigipascal/excelart

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file excel_pixel_art-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for excel_pixel_art-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9900461b96362c4896afe40f6316e44bcaf47fea0fb529e5e15512b38466b23d
MD5 035b02c3c4a69890a9ed67c3538b4b3b
BLAKE2b-256 6b0a97c45c4ff789f83433b50b32cf42104f0ea52fc19ba9771549e92f365a47

See more details on using hashes here.

Provenance

The following attestation bundles were made for excel_pixel_art-1.0.0-py3-none-any.whl:

Publisher: publish.yml on luigipascal/excelart

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 files

Supported by

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