Skip to content

quickmove/texture_packer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Texture Packer

将多张图片合并为一张图集(sprite atlas),支持 CLI 和 GUI 两种使用方式。

功能特性

  • 图片格式:PNG 32-bit / 24-bit / 8-bit、JPEG
  • 装箱策略:Best Short Side Fit、Best Long Side Fit、Best Area Fit、Bottom Left
  • 选项配置:间距、最大尺寸、最大列数、裁剪透明边距、2 的幂次尺寸、元数据输出
  • 输出:图集图片 + JSON 元数据

项目结构

texture_packer/
├── texture-packer-cli/          # Rust CLI 工具
│   ├── Cargo.toml
│   └── src/
│       ├── main.rs              # CLI 入口
│       └── packer.rs            # MaxRects 装箱算法
├── texture-packer-tauri/        # Tauri v2 桌面应用
│   ├── src/                     # React 前端
│   │   ├── App.tsx
│   │   └── styles.css
│   └── src-tauri/               # Rust 后端
│       └── src/
│           ├── packer.rs        # MaxRects 装箱算法
│           └── commands.rs      # Tauri 命令
└── AGENTS.md

快速开始

CLI(Rust)

cd texture-packer-cli
cargo build --release

# 打包目录下所有图片
./target/release/tpack ./sprites/ -o atlas.png

# 指定格式和选项
./target/release/tpack ./sprites/ --image-format jpg --max-size 2048 --trim

# 查看所有选项
./target/release/tpack --help

GUI(Tauri)

cd texture-packer-tauri
npm install
npx tauri dev

打包为独立应用:

npx tauri build
# 生成文件位于 src-tauri/target/release/bundle/

CLI 参数

参数 默认值 说明
-o, --output <文件夹名>.png 输出路径
--image-format png32 图片格式:png32 png24 png8 jpg
--max-size 4096 图集最大尺寸(像素)
--padding 0 精灵间距(像素)
--max-columns 0 每行最大图块数,0 表示不限制
--strategy ssf 装箱策略:ssf lsf af bl
--trim 关闭 启用透明边距裁剪
--power-of-two 关闭 强制 2 的幂次尺寸
--metadata 关闭 输出 JSON 元数据
--format json 元数据格式:json

装箱策略说明

策略 说明
ssf (Best Short Side Fit) 选择短边剩余最小的位置,整体紧凑
lsf (Best Long Side Fit) 选择长边剩余最小的位置,倾向方正
af (Best Area Fit) 选择面积最匹配的位置,适合大小差异大的场景
bl (Bottom Left) 优先放在左下角,排列整齐

输出示例

Packing 12 images...
Atlas: 256x192  (12 sprites)
Coverage: 72.3%
Saved: atlas.png
Done in 0.01s

依赖

  • CLI:Rust 1.70+、clap、image
  • GUI:Node.js 18+、Rust、Tauri v2

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors