Skip to main content

Turn images into pixel arts.

Project description

CI : Docs CI : Lint CI : Tests PyPI : pixelize Python : versions Discord License : MIT

Description

Turn images into pixel arts.

Documentation

Documentation is available on https://dashstrom.github.io/pixelize

Installation

You can install pixelize using pip from PyPI

pip install pipx
pipx ensurepath
pipx install pixelize

You can also install gpu support for rembg dependency using:

pipx inject pixelize rembg[gpu]

Usage

pixelize --version
pixelize --help

Example: Cropping

pixelize \
  -i ./docs/examples/car.jpg \
  --height 128 \
  --crop 0x80+136x216 \
  --color-reduction 4 \
  --output-dir ./docs/examples/pixelized
https://raw.githubusercontent.com/Dashstrom/pixelize/main/docs/examples/car.jpg https://raw.githubusercontent.com/Dashstrom/pixelize/main/docs/examples/pixelized/car.pix.png

Example: Border

pixelize \
  -i ./docs/examples/cat.bmp \
  --height 32 \
  --border \
  --output-dir ./docs/examples/pixelized
https://raw.githubusercontent.com/Dashstrom/pixelize/main/docs/examples/cat.bmp https://raw.githubusercontent.com/Dashstrom/pixelize/main/docs/examples/pixelized/cat.pix.png

Example: Rembg

pixelize \
  -i swing.jpg \
  --height 128 \
  --rembg \
  --border \
  --color-reduction 5
https://raw.githubusercontent.com/Dashstrom/pixelize/main/docs/examples/swing.jpg https://raw.githubusercontent.com/Dashstrom/pixelize/main/docs/examples/pixelized/swing.pix.png

Example: Module

from pixelize import pixelize
from pathlib import Path
from PIL import Image

image_path = "image.png"

# Using str
im = pixelize(image_path)

# Using pathlib.Path
im = pixelize(Path(image_path))

# Using stream
with open("image.png", "rb") as file:
  im = pixelize(file)

# Using Pillow
im = pixelize(Image.open("image.png"))

Development

Contributing

Contributions are very welcome. Tests can be run with poe check, please ensure the coverage at least stays the same before you submit a pull request.

Setup

You need to install Poetry and Git for work with this project.

git clone https://github.com/Dashstrom/pixelize
cd pixelize
poetry install --all-extras
poetry run poe setup
poetry shell

Poe

Poe is available for help you to run tasks.

test           Run test suite.
lint           Run linters : ruff linter, ruff formatter and mypy.
format         Run linters in fix mode.
check          Run all checks : lint, test and docs.
cov            Run coverage for generate report and html.
open-cov       Open html coverage report in webbrowser.
docs           Build documentation.
open-docs      Open documentation in webbrowser.
setup          Setup pre-commit.
pre-commit     Run pre-commit.
clean          Clean cache files

Skip commit verification

If the linting is not successful, you can’t commit. For forcing the commit you can use the next command :

git commit --no-verify -m 'MESSAGE'

Commit with commitizen

To respect commit conventions, this repository uses Commitizen.

cz commit

How to add dependency

poetry add 'PACKAGE'

Ignore illegitimate warnings

To ignore illegitimate warnings you can add :

  • # noqa: ERROR_CODE on the same line for ruff.

  • # type: ignore[ERROR_CODE] on the same line for mypy.

  • # pragma: no cover on the same line to ignore line for coverage.

  • # doctest: +SKIP on the same line for doctest.

Uninstall

pip uninstall pixelize

License

This work is licensed under MIT.

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

pixelize-0.0.2.tar.gz (11.7 kB view details)

Uploaded Source

Built Distribution

pixelize-0.0.2-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

File details

Details for the file pixelize-0.0.2.tar.gz.

File metadata

  • Download URL: pixelize-0.0.2.tar.gz
  • Upload date:
  • Size: 11.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for pixelize-0.0.2.tar.gz
Algorithm Hash digest
SHA256 520e33bb8d972b8d511a83b96a56774c7475f39ac34f56345eaf1aaa791aa3e9
MD5 174550dc56c4bf1d1721af57052525c5
BLAKE2b-256 b33a78aa9c9c05ac986babf52fd5cf72a6331f04fba957c5174a6f991d91a131

See more details on using hashes here.

File details

Details for the file pixelize-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: pixelize-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 9.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for pixelize-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0d20538ef3b21788d1f5b5bcb9b14101e3233c0830871bd83084e127091d4ae4
MD5 720e04a50d3564a1ff8f68cac7a21073
BLAKE2b-256 47a46f562bd2e2e6daf9948058534a599fed06e15db0364e8921949a895cd6fe

See more details on using hashes here.

Supported by

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