프로젝트 소개
Sprite Fusion Pixel Snapper는 AI로 생성된 지저분하고 일관성 없는 픽셀 아트를 수정하기 위해 픽셀을 완벽한 그리드에 스냅하는 도구입니다. 일관되지 않은 픽셀 크기와 위치, 드리프트되는 그리드 해상도, 엄격한 팔레트에 묶이지 않은 색상과 같은 문제를 해결합니다. 이 도구는 픽셀이 완벽한 그리드에 스냅되도록 보장하고, 확장 가능한 일관된 그리드 해상도를 유지하며, 사용자 지정 팔레트를 지원하는 엄격한 팔레트로 색상을 양자화합니다.
AI 생성 픽셀 아트, 그리드에 맞지 않는 절차적 2D 아트(타일맵 또는 아이소메트릭 맵 등), 완벽하게 확장 가능해야 하는 2D 게임 에셋 또는 3D 텍스처에 이상적입니다. 이 도구는 디더링을 포함하여 가능한 한 많은 디테일을 보존합니다.
## 기능
- **그리드 스냅**: 픽셀이 완벽한 그리드에 정렬됩니다.
- **일관된 해상도**: 그리드 해상도는 일관되며 픽셀 해상도로 확장할 수 있습니다.
- **팔레트 양자화**: 색상은 엄격하고 양자화된 팔레트에 묶이며, 사용자 지정 팔레트가 지원됩니다.
- **배치 처리**: 전체 이미지 디렉토리를 처리합니다.
- **CLI 및 웹(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,...>`: 쉼표로 구분된 6자리 16진수 색상으로 출력을 제한합니다.
예시:
```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`를 실행하세요.
## 웹(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 라이선스 (Hugo Duprez)
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.