这个项目能做什么

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)