Об этом проекте

Sprite Fusion Pixel Snapper — это инструмент, предназначенный для привязки пикселей к идеальной сетке, в частности для исправления беспорядочной и несогласованной пиксельной графики, созданной ИИ. Он решает такие проблемы, как несогласованные размеры и позиции пикселей, дрейфующее разрешение сетки и цвета, не привязанные к строгой палитре. Инструмент обеспечивает привязку пикселей к идеальной сетке, поддерживает согласованное разрешение сетки, которое можно масштабировать, и квантует цвета к строгой палитре с поддержкой пользовательских палитр. Он идеально подходит для пиксельной графики, созданной ИИ, процедурной 2D-графики, не вписывающейся в сетку (например, тайлмапов или изометрических карт), а также для 2D-игровых ресурсов или 3D-текстур, которые должны быть идеально масштабируемыми. Инструмент сохраняет как можно больше деталей, включая дизеринг. ## Возможности - **Привязка к сетке**: пиксели выравниваются по идеальной сетке. - **Согласованное разрешение**: разрешение сетки согласовано и может быть масштабировано до разрешения пикселей. - **Квантование палитры**: цвета привязаны к строгой квантованной палитре; поддерживаются пользовательские палитры. - **Пакетная обработка**: обработка целых каталогов изображений. - **CLI и Web (WASM)**: доступен как инструмент командной строки и как модуль WebAssembly для интеграции в веб-проекты. - **Настольная версия**: также доступен как настольное приложение. ## Использование CLI Установка через Homebrew: ```bash brew install Hugo-Dz/tap/spritefusion-pixel-snapper ``` Или через Cargo (требуется Rust): ```bash cargo install spritefusion-pixel-snapper ``` Использование: ```text spritefusion-pixel-snapper <INPUT> <OUTPUT> [COLOR_COUNT] [OPTIONS] ``` - `<INPUT>`: изображение PNG/JPEG или каталог для пакетной обработки. - `<OUTPUT>`: выходной PNG или другой выходной каталог для пакетной обработки. - `[COLOR_COUNT]`: количество цветов палитры. По умолчанию `16`. - `--pixel-size <PIXELS>`: переопределяет автоматически определённый размер пикселя. Должен быть от 1 до половины наименьшего размера изображения. - `--palette <HEX,...>`: ограничивает вывод шестизначными шестнадцатеричными цветами, разделёнными запятыми. Примеры: ```bash # Квантовать изображение до 16-цветной палитры spritefusion-pixel-snapper input.png output.png 16 # Обработать каталог пакетно spritefusion-pixel-snapper sprites/batch_inputs sprites/batch_outputs 16 # Переопределить автоматически определённый размер пикселя spritefusion-pixel-snapper input.png output.png --pixel-size 8 spritefusion-pixel-snapper sprites/batch_inputs sprites/batch_outputs 16 --pixel-size 8 # Использовать фиксированную цветовую палитру spritefusion-pixel-snapper input.png output.png --palette "0d2b45,203c56,544e68,8d697a,d08159,ffaa5e,ffd4a3,ffecd6" spritefusion-pixel-snapper sprites/batch_inputs sprites/batch_outputs --palette "0d2b45,203c56,544e68,8d697a" ``` Запустите `spritefusion-pixel-snapper --help`, чтобы увидеть все опции. ## Использование Web (WASM) Сборка модуля WASM: ```bash wasm-pack build --target web --out-dir pkg --release ``` Затем используйте его в своём проекте: ```js import init, { process_image } from "./pkg/spritefusion_pixel_snapper.js"; await init(); // process_image(inputBytes, kColors?, pixelSizeOverride?, paletteHex?) const outputBytes = process_image(inputBytes, 16); // С пользовательской палитрой const recoloredBytes = process_image(inputBytes, null, null, "0f0f1b,ffecd6,ff4d6d,29adff"); ``` Передайте `null` для любого необязательного аргумента, чтобы использовать поведение по умолчанию. ## Сборка из исходного кода ```bash git clone https://github.com/Hugo-Dz/spritefusion-pixel-snapper.git cd spritefusion-pixel-snapper cargo build --release ``` Бинарный файл будет находиться в `target/release/spritefusion-pixel-snapper`. ## Благодарности Pixel Snapper — это проект Sprite Fusion. Sprite Fusion — это инструмент для генерации НАСТОЯЩИХ спрайтов и анимаций пиксельной графики для разработки игр. ## Лицензия MIT License (Hugo Duprez)