Skip to content

NyxJae/Nine_grid_image_slicing_rust

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

九宫格切图工具 (Nine Grid Slicer)

由 Rust 开发的 Windows 桌面应用,专为 UI 制作设计。用于快速处理 Unity 等引擎中的九宫格图片素材。当美术提供的是完整大图而非切好的九宫格素材时,本工具可以让你免去打开 PS 的繁琐,快速完成切割处理。

注意:如果图片包含复杂的渐变或纹理,简单的九宫格切割可能无法完美还原,此时仍建议由美术人员进行专业处理。

img

✨ 功能特性

核心功能

  • 📁 便捷导入:支持通过菜单或直接拖放 PNG 图片进入窗口(支持批量拖入多个文件)
  • ✂️ 可视化编辑
    • 直观的切割线预览,实时显示切割效果
    • 可拖动的红色圆形手柄,精确调整上下左右边距
    • 支持数值拖拽输入框(DragValue)精确控制切割参数
    • 拖动手柄时支持亚像素精度累加,确保流畅操作
  • 🎯 批量处理
    • 同时导入和管理多张图片
    • 一键复制上一张图片的切割参数(📋 复制上图参数 按钮)
    • 支持批量导出所有图片(带进度提示)
    • 可单独关闭不需要的图片
  • 👀 实时预览
    • 右侧面板实时显示切割后的九宫格拼接效果
    • 自动调整预览尺寸以适应窗口
  • 🔍 缩放控制:支持 1%-200% 的输出缩放比例调整
  • 💾 灵活导出
    • 覆盖原图:直接替换原始文件(带二次确认对话框)
    • 添加后缀:导出为新文件(默认添加 _sliced 后缀)
    • 异步导出机制,不会冻结界面
    • 实时显示导出进度和状态信息

界面特点

  • 自适应布局:左右面板可通过中间分隔条自由调整宽度比例(30%-70%)
  • 暗色主题:默认深色界面,长时间使用更护眼
  • 中文界面:完整中文支持,自动加载系统中文字体(微软雅黑/黑体/宋体)
  • 拖放高亮:拖入文件时显示蓝色高亮边框提示

快捷键

  • Ctrl + O:导入图片
  • Ctrl + S:覆盖原图导出(需二次确认)
  • Ctrl + Shift + S:添加后缀导出
  • Alt + F4:退出程序

🚀 使用方法

1. 导入图片

  • 方式一:点击菜单栏 文件(F) → 📁 导入图片...,选择 PNG 文件(支持多选)
  • 方式二:直接将 PNG 文件拖放到窗口左侧区域(支持同时拖入多个文件)
  • 拖放提示:拖入时窗口会显示蓝色边框高亮,释放鼠标即可完成导入

2. 调整切割参数

  • 拖动手柄
    • 在左侧预览图上拖动四个红色圆形手柄,分别调整上、下、左、右边距
    • 手柄悬停时会高亮显示为浅红色
    • 拖动支持亚像素精度,操作流畅无卡顿
  • 输入数值
    • 在参数控制区使用拖拽数值框(DragValue)输入精确的像素值(范围 0-5000)
    • 支持直接点击输入或左右拖动调整
  • 复制参数
    • 处理多张相似图片时,点击 📋 复制上图参数 快速应用上一张图片的设置
    • 此按钮仅在有上一张图片时可用
  • 调整缩放:修改缩放百分比(1%-200%),控制最终输出尺寸

3. 预览效果

右侧面板会实时显示切割后的九宫格拼接效果,包括:

  • 📄 预览:显示当前选中图片的文件名
  • 📐 原始:原始图片尺寸
  • ✂ 切割后:九宫格边缘部分的尺寸(左+右,上+下)
  • 🔍 缩放:缩放比例和最终输出尺寸

4. 管理图片列表

  • 选中图片:点击左侧任意图片项即可选中并在右侧预览
  • 关闭图片:点击图片项右上角的 ❌ 关闭 按钮移除不需要的图片
  • 继续添加:可随时拖入更多 PNG 文件添加到列表中

5. 导出图片

  • 覆盖原图
    • 点击底部 ⚠ 覆盖原图 按钮(橙色警告色)
    • 弹出确认对话框提示"此操作将直接修改原始图片文件,且不可撤销!"
    • 确认后将批量处理所有图片并覆盖原文件
  • 保存为新文件
    • 点击 💾 导出(添加后缀) 按钮(绿色)
    • 自动为每张图片生成带 _sliced 后缀的新文件
    • 原文件保持不变
  • 导出进度
    • 导出过程中底部会显示进度条和状态信息
    • 支持异步导出,界面不会冻结
    • 完成后显示"导出完成!"提示

🛠️ 开发

环境要求

  • Rust 1.70+
  • Cargo

运行开发版本

cargo run

编译 Release 版本

cargo build --release

编译后的可执行文件位于 target/release/nine_grid_slicer.exe

技术栈

  • GUI 框架:egui + eframe
  • 图像处理:image crate
  • 文件对话框:rfd

📄 许可

MIT License

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages