Skip to main content

pixelkid

Превращает любое фото в пиксель-арт одной функцией — и в цветную PDF-раскраску по номерам. Сделано для мастер-классов по Python (возраст 11–17).

from pixelkid import pixelate

pixelate("photo.jpg", pixel_size=12, colors=16, save_as="art.png")

Установка

pip install pixelkid

Нужен Python 3.8+. Вместе с pixelkid автоматически установятся Pillow и reportlab.

Функция pixelate

pixelate(image, pixel_size=12, colors=32, save_as=None, upscale=True)
Параметр Что это По умолчанию
image Путь к файлу ("photo.jpg") или картинка Pillow (Image) —
pixel_size Размер «большого пикселя» в обычных пикселях, от 2. Чем больше — тем крупнее квадраты 12
colors Сколько цветов оставить, от 2 до 256 32
save_as Куда сохранить результат. Если не указать — файл не создаётся None
upscale True — картинка исходного размера с крупными пикселями. False — маленькая картинка, где 1 точка = 1 большой пиксель True

Возвращает картинку Pillow (PIL.Image.Image), поэтому её можно показать (.show()), сохранить (.save(...)) или обработать дальше.

Ошибки. Если pixel_size меньше 2 или colors вне диапазона 2–256, функция выбросит ValueError.

Функция coloring_pdf

coloring_pdf(image, save_as="coloring.pdf", cells=32, colors=12, title="Пиксель-раскраска")

Делает цветной PDF «раскраска по номерам» (A4) в стиле МАСТЕРСАМ.

Параметр Что это По умолчанию
image Путь к файлу или картинка Pillow —
save_as Куда сохранить PDF "coloring.pdf"
cells Сколько клеток в ширину, от 4 до 60 32
colors Сколько цветов в палитре, от 2 до 24 12
title Заголовок на листе "Пиксель-раскраска"
  • Страница 1 — раскраска: клетки с номерами, палитра «номер · цвет · RGB», строка для имени.
  • Страница 2 — ответ: как выглядит готовая картинка.

Возвращает палитру — список цветов (r, g, b). Цвет с номером 1 — первый в списке (самый частый на картинке).

Примеры

from pixelkid import pixelate, coloring_pdf

# 1. Просто показать результат
pixelate("cat.jpg").show()

# 2. Очень крупные пиксели и всего 4 цвета
pixelate("cat.jpg", pixel_size=30, colors=4, save_as="cat_8bit.png")

# 3. Пять версий одного фото
for size in (4, 8, 16, 24, 32):
    pixelate("cat.jpg", pixel_size=size, save_as=f"cat_{size}.png")

# 4. Раскраска по номерам для печати
coloring_pdf("cat.jpg", save_as="cat_coloring.pdf", cells=24, colors=8)

# 5. Маленькая «сетка» для своих игр и раскрасок
grid = pixelate("cat.jpg", pixel_size=16, upscale=False)
print(grid.size)   # например, (48, 48): можно перебрать каждую клеточку

Как это работает

  1. Уменьшаем фото: каждый квадрат pixel_size × pixel_size становится одной точкой.
  2. Оставляем только colors цветов (quantize).
  3. Увеличиваем обратно методом NEAREST — он просто копирует цвет и не размывает границы.

Разработка

pip install -e .[dev]    # или: pip install -e . pytest
pytest
python -m build          # собрать пакет в папку dist/

Лицензия

MIT. Шрифт Inter в папке fonts — SIL Open Font License 1.1 (fonts/OFL.txt).

Metadata

Release files for pixelkid 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pixelkid 0.2.0
File Size Uploaded Provenance
pixelkid-0.2.0.tar.gz 80.8 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for pixelkid 0.2.0
File Interpreter ABI Platform
pixelkid-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 159.5 kB

Release files / pixelkid-0.2.0.tar.gz

Download URL pixelkid-0.2.0.tar.gz
Size 80.8 kB
Tags Source
SHA-256 checksum
How to use checksums
126ce38ec1acf56409269654b51cdfa00a17071fee3fe75914d7d200c1b5a2c5
BLAKE2b-256 checksum
How to use checksums
5e4e8ae0be854281f20ca7f49e3f7e7b804764c021ee9baf42d683a921e8dbfe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / pixelkid-0.2.0-py3-none-any.whl

Download URL pixelkid-0.2.0-py3-none-any.whl
Size 78.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6b676be3cd69045bd8a5f11595e6c4c869fbc07a070851024e92bcee29cadb43
BLAKE2b-256 checksum
How to use checksums
896bd4fb100bf52d3e6089d3cf61fe2f5ca4928403a84c9fb00a164704c97470
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Security for pixelkid 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page