pixelize

Turn images into pixel arts.


Keywords
python, cli, script, pixel-art, image-to-image
License
MIT
Install
pip install pixelize==0.0.2

Documentation

pixelize

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 pipx 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

image

image

Example: Border

pixelize \
  -i ./docs/examples/cat.bmp \
  --height 32 \
  --border \
  --output-dir ./docs/examples/pixelized

image

image

Example: Rembg

pixelize \
  -i swing.jpg \
  --height 128 \
  --rembg \
  --border \
  --color-reduction 5

image

image

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

pipx uninstall pixelize

License

This work is licensed under MIT.