pixelize
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


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


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


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.