一个基于 Wails 框架开发的跨平台桌面应用,提供图片批量重命名和命名格式转换功能。
- 支持选择多张图片或整个文件夹
- 支持图片格式:PNG、JPG、JPEG、WEBP、GIF
- 自动中文翻译为英文(基于 Google Translate API)
- 自定义类型和模块分类
- 支持原目录覆盖或导出到新目录
- 实时预览新文件名
- 文件名冲突自动处理(添加序号)
- 智能识别多种命名格式(驼峰、下划线、中横线、中文等)
- 一键转换为 6 种标准格式:
- 驼峰命名法 (camelCase)
- 帕斯卡命名法 (PascalCase)
- 下划线小写 (snake_case)
- 下划线大写 (SCREAMING_CASE)
- 包名 (package.case)
- 中横线 (kebab-case)
- 支持中英文混合输入
- 一键复制转换结果
- 语言: Go 1.21+
- 框架: Wails v2.11.0
- 标准库:
encoding/json- JSON 处理net/http- HTTP 请求os/path/filepath- 文件操作regexp- 正则表达式unicode- Unicode 字符处理
- 语言: HTML5 + CSS3 + JavaScript (原生)
- UI: 自定义样式
- 通信: Wails Runtime API
- 翻译: Google Translate API (免费接口)
- Go 1.21 或更高版本
- Node.js 16+ (Wails 框架依赖)
- Wails CLI v2
- 操作系统:macOS / Linux / Windows
- 无需任何依赖,直接运行编译后的可执行文件
# macOS (使用 Homebrew)
brew install go
# Linux (Ubuntu/Debian)
sudo apt install golang-go
# 或访问官网下载
# https://golang.org/dl/# macOS (使用 Homebrew)
brew install node
# Linux (Ubuntu/Debian)
sudo apt install nodejs npm
# 或访问官网下载
# https://nodejs.org/go install github.com/wailsapp/wails/v2/cmd/wails@latestgit clone <你的仓库地址>
cd image_rename_toolgo mod download# 方式 1:使用脚本
./run.sh
# 方式 2:使用 Wails 命令
wails dev
# 方式 3:macOS 双击启动
# 双击 启动.command 文件# 构建应用
./build.sh
# 或使用 Wails 命令
wails build
# 构建产物位置
# macOS: build/bin/image_rename_tool.app
# Windows: build/bin/ImageRenameTool.exe
# Linux: build/bin/ImageRenameTool假设你有一批首页相关的图标需要规范化命名:
原文件:
- 设置.png
- 消息图标.webp
- user_avatar.jpg
操作步骤:
-
启动应用(双击
启动.command或运行wails dev) -
点击「选择图片」,选中这 3 个文件
-
在表格中编辑每一行:
- 第 1 行:类型选
icon,模块选首页,功能名称输入设置 - 第 2 行:类型选
icon,模块选首页,功能名称输入消息 - 第 3 行:类型选
icon,模块选用户,功能名称输入头像
- 第 1 行:类型选
-
实时预览新文件名:
icon_home_settings.png icon_home_message.webp icon_user_avatar.jpg -
(可选)如需保留原文件,点击「选择」设置输出目录
-
点击「运行」按钮
-
完成!查看结果提示
结果:
- 中文自动翻译为英文
- 文件名格式统一
- 便于代码中引用
假设 icons 文件夹下有 50 个图标文件:
操作步骤:
-
点击「选择文件夹」,选择
icons目录 -
自动加载所有图片文件(50 个)
-
设置输出目录(避免覆盖原文件):
- 点击底部「选择」按钮
- 选择
icons_renamed目录
-
批量设置(可选):
- 开启「同步模块」开关
- 在第 1 行选择模块
首页 - 其他行自动同步为
首页
-
逐行填写功能名称(或保持默认)
-
点击「运行」,显示进度条
-
完成后在
icons_renamed目录查看结果
特点:
- 原文件保持不变
- 批量处理速度快
- 进度实时显示
假设你在代码中需要将数据库字段名转换为 JavaScript 变量名:
数据库字段:
user_home_order_count
操作步骤:
-
切换到「命名转换器」标签页
-
在输入框输入:
user_home_order_count -
自动生成 6 种格式:
驼峰命名法: userHomeOrderCount 帕斯卡命名法: UserHomeOrderCount 下划线+小写: user_home_order_count 下划线+大写: USER_HOME_ORDER_COUNT 包名: user.home.order.count 中横线+小写: user-home-order-count -
点击「驼峰命名法」右侧的「复制」按钮
-
在代码中粘贴使用:
const userHomeOrderCount = data.user_home_order_count;
假设产品文档中的功能名称需要转换为代码变量:
输入:
首页订单统计black2024版本
操作步骤:
-
在「命名转换器」输入框粘贴文本
-
工具自动识别:
- 中文:
首页、订单、统计、版本 - 英文:
black - 数字:
2024
- 中文:
-
自动翻译中文为英文(调用 Google Translate)
-
生成结果:
驼峰命名法: homeOrderStatisticsBlack2024Version 帕斯卡命名法: HomeOrderStatisticsBlack2024Version 下划线+小写: home_order_statistics_black_2024_version ... -
一键复制所需格式
特点:
- 智能分词
- 中文自动翻译
- 支持驼峰识别
假设你的项目有特殊的分类需求:
操作步骤:
-
点击「管理类型」按钮
-
查看默认类型:
icon、bg、img、btn -
添加自定义类型:
- 在输入框输入
logo - 点击「添加」
- 在输入框输入
banner - 点击「添加」
- 在输入框输入
-
删除不需要的类型:
- 点击类型右侧的「×」删除
-
点击「关闭」保存
-
点击「管理模块」按钮
-
添加项目模块:
- 输入
商城、支付、订单等 - 逐个添加
- 输入
-
在图片重命名时使用新的类型和模块
注意:
- 类型建议用英文(直接用于文件名)
- 模块可以用中文(会自动翻译)
- 自定义配置在应用关闭后会重置
- 选择图片: 点击「选择图片」按钮,多选图片文件
- 选择文件夹: 点击「选择文件夹」按钮,自动加载文件夹内所有图片
- 类型: 选择图片类型(icon、bg、img、btn 等)
- 可通过「管理类型」按钮自定义类型
- 模块: 选择功能模块(通用、动态、首页等)
- 可通过「管理模块」按钮自定义模块
- 功能名称: 输入图片用途描述
- 支持中文,会自动翻译为英文
- 支持英文,不会翻译
- 默认: 空白表示原目录覆盖
- 自定义: 点击「选择」按钮,选择导出目录
- 点击「运行」按钮
- 显示进度条
- 完成后弹出结果提示
{类型}_{模块}_{功能名}.{扩展名}
示例:
icon_home_settings.webpbg_user_avatar.pngbtn_chat_send.jpg
- 在输入框中输入任意格式文本
- 或点击「粘贴」按钮从剪贴板粘贴
- 自动生成 6 种命名格式
- 点击「复制」按钮复制对应格式
| 输入示例 | 说明 |
|---|---|
首页设置 |
中文 |
homeSettings |
驼峰命名 |
home_settings |
下划线命名 |
home-settings |
中横线命名 |
首页home设置 |
中英混合 |
homeSettingsBlack2024 |
驼峰+数字 |
| 格式 | 示例 | 用途 |
|---|---|---|
| 驼峰命名法 | homeSettings |
JavaScript 变量 |
| 帕斯卡命名法 | HomeSettings |
类名、组件名 |
| 下划线小写 | home_settings |
数据库字段、Python |
| 下划线大写 | HOME_SETTINGS |
常量 |
| 包名 | home.settings |
Java 包名 |
| 中横线小写 | home-settings |
CSS 类名、URL |
image_rename_tool/
├── main.go # 应用入口
├── app.go # 核心业务逻辑
├── go.mod # Go 依赖管理
├── go.sum # Go 依赖锁定
├── wails.json # Wails 配置文件
├── build.sh # 构建脚本
├── run.sh # 开发运行脚本
├── 启动.command # macOS 启动脚本
├── frontend/ # 前端资源
│ ├── index.html # 主页面
│ ├── style.css # 样式文件
│ ├── main.js # 前端逻辑
│ └── wailsjs/ # Wails 自动生成的绑定代码
│ ├── go/ # Go 方法绑定
│ └── runtime/ # Wails 运行时
├── build/ # 构建相关
│ ├── appicon.png # 应用图标 (1024x1024)
│ ├── bin/ # 构建产物
│ └── darwin/ # macOS 配置
│ ├── Info.plist
│ └── Info.dev.plist
├── TECHNICAL.md # 技术文档
├── USER_GUIDE.md # 用户指南
└── README.md # 本文件
- 识别驼峰命名 (
homeOrderBlack→home,order,black) - 识别下划线/中横线分隔符
- 识别中文字符块
- 识别数字块
- 识别连续大写缩写 (
XMLParser→XML,Parser)
- 使用 Google Translate 免费 API
- 自动检测中文字符
- 翻译结果转小写并规范化
- 网络异常时保持原文
- 原目录模式:使用
os.Rename直接重命名 - 新目录模式:使用
os.ReadFile+os.WriteFile复制文件 - 文件名冲突:自动添加序号后缀
- 替换
build/appicon.png文件(1024x1024 PNG) - 重新构建应用
编辑 app.go 中的 NewApp() 函数:
func NewApp() *App {
return &App{
modules: []string{"通用", "动态", "首页", "用户"},
types: []string{"icon", "bg", "img", "btn"},
outputDir: "",
}
}- 在
app.go中的NamingResult结构体添加字段 - 实现对应的转换函数
- 在
ConvertNaming()方法中调用 - 在
frontend/index.html中添加显示区域 - 在
frontend/main.js中添加显示逻辑
Wails 自动生成绑定代码,前端调用方式:
// 调用后端方法
const items = await window.go.main.App.SelectFiles();
const result = await window.go.main.App.ConvertNaming('首页设置');
// 监听后端事件
window.runtime.EventsOn('rename:progress', (data) => {
console.log(`进度: ${data.current} / ${data.total}`);
});# macOS
wails build -platform darwin/amd64
wails build -platform darwin/arm64
# Windows
wails build -platform windows/amd64
# Linux
wails build -platform linux/amd64# 生产构建
wails build
# 带调试信息
wails build -debug
# 指定输出目录
wails build -o custom_output_dir
# 跳过前端构建
wails build -skipbindingsA: 在「功能名称」中直接输入英文,不会触发翻译。
A: PNG、JPG、JPEG、WEBP、GIF。
A: 默认会覆盖。如需保留原文件,请设置输出目录。
A: 自动添加数字后缀,如 icon_home_1.png。
A: 仅在输入包含中文时需要网络(调用翻译 API)。
A: 右键点击应用 → 打开,或在系统设置中允许运行。
A: 修改 app.go 中的 NewApp() 函数,或在应用中通过「管理类型」和「管理模块」按钮自定义。
- 翻译结果可添加本地缓存(当前未实现)
- 大批量文件处理已有进度条显示
- 前端输入已实现防抖处理
MIT License
欢迎提交 Issue 和 Pull Request!
如有问题,请提交 GitHub Issue。
Enjoy! 🎉

