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): можно перебрать каждую клеточку
Как это работает
- Уменьшаем фото: каждый квадрат
pixel_size × pixel_sizeстановится одной точкой. - Оставляем только
colorsцветов (quantize). - Увеличиваем обратно методом
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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| pixelkid-0.2.0.tar.gz | 80.8 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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.