这个项目能做什么
Sprite Fusion Pixel Snapper 是一款旨在将像素对齐到完美网格的工具,专门用于修复由 AI 生成的杂乱且不一致的像素画。它解决了像素大小和位置不一致、网格分辨率漂移以及颜色未绑定到严格调色板等问题。该工具确保像素对齐到完美网格,保持可缩放到像素分辨率的统一网格分辨率,并将颜色量化为严格的调色板,同时支持自定义调色板。
它非常适合 AI 生成的像素画、不符合网格的程序化 2D 艺术(如瓦片地图或等距地图),以及需要完美可缩放性的 2D 游戏素材或 3D 纹理。该工具尽可能保留细节,包括抖动。
## 功能
- **网格对齐**:像素对齐到完美网格。
- **统一分辨率**:网格分辨率统一,并可缩放到像素分辨率。
- **调色板量化**:颜色绑定到严格的量化调色板;支持自定义调色板。
- **批处理**:处理整个图像目录。
- **CLI 和 Web(WASM)**:可作为命令行工具使用,也可作为 WebAssembly 模块集成到 Web 项目中。
- **桌面版本**:也可作为桌面应用程序使用。
## 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 许可证(Hugo Duprez)
评论
0 评分人数达到10人后显示
登录后参与讨论。