一款基于Go语言开发的高效命令行工具,专注于将主流图片格式快速转换为AVIF格式,兼顾压缩效率与图像质量,支持批量处理与并发转换。
1.3.0 (20251107)
| 特性 | 说明 |
|---|---|
| 🎨 多格式支持 | 完美兼容 PNG、BMP、JPG/JPEG、WebP、GIF 等主流图像格式 |
| 🚀 并发转换 | 自动利用CPU多核性能,并行处理多个文件,大幅提升转换效率 |
| 🔧 质量可调 | 支持 1-100 级质量参数调节,平衡文件大小与图像质量 |
| 📦 批量处理 | 支持通配符匹配(如 *.png),一键转换多个多个文件 |
| ⚡ 强制覆盖 | 可选强制覆盖已存在的AVIF文件,灵活处理重复转换场景 |
| 🖥️ 跨平台兼容 | 支持 Linux、macOS、Windows 系统,无需图形界面 |
- 无需安装Go环境,直接使用预编译可执行文件
- 操作系统:Linux(任意终端)、macOS(Terminal/iTerm2)、Windows(PowerShell/CMD)
-
下载可执行文件
从项目发布页下载对应系统的预编译版本,保存到本地目录。
-
配置环境变量(可选)
将工具所在目录添加到系统PATH,实现全局调用。
-
验证安装
image2avif -v
若显示版本信息(如
图片转AVIF工具: 1.2.0),则安装成功。
image2avif [选项] <文件路径...>| 场景 | 命令示例 | 说明 |
|---|---|---|
| 转换单个文件 | image2avif photo.jpg |
在同目录生成 photo.avif |
| 指定质量转换 | image2avif -q 90 picture.png |
以质量90转换PNG文件 |
| 批量转换多种格式 | image2avif *.jpg *.png |
转换当前目录所有JPG和PNG文件 |
| 强制覆盖已存在文件 | image2avif -f -q 70 oldimage.webp |
强制覆盖现有AVIF文件 |
| 转换特定目录文件 | image2avif ~/Pictures/*.gif |
转换 Pictures 目录下所有GIF |
| 参数 | 简写 | 类型 | 说明 |
|---|---|---|---|
--quality |
-q |
数字(1-100) | 可选:设置AVIF图像质量(默认80,数值越高质量越好) |
--force |
-f |
开关 | 可选:强制覆盖已存在的AVIF输出文件 |
--help |
-h |
开关 | 可选:显示完整帮助信息 |
--version |
-v |
开关 | 可选:显示当前工具版本(如 v1.2.0) |
如需自行编译源码,需先安装依赖库:
| 操作系统 | 依赖安装命令 |
|---|---|
| macOS | brew install libavif aom |
| Debian/Ubuntu | apt-get install libavif-dev libaom-dev |
| Windows | 使用 MSYS2 执行:pacman -S mingw-w64-x86_64-libavif mingw-w64-x86_64-aom |
# 克隆仓库(假设)
git clone https://github.com/xa1st/image2avif.git
cd image2avif
# 编译可执行文件
go build -o image2avif-
Windows系统提示缺少 libaom.dll
- 下载 libaom.dll
- 放置于工具同目录或系统
System32目录
-
转换失败提示不支持的格式
- 检查文件扩展名是否正确(如
.jpeg而非.jpe) - 确认文件是否为工具支持的格式(PNG/BMP/JPG/WebP/GIF)
- 检查文件扩展名是否正确(如
-
大文件转换耗时过长
- 可降低质量参数(如
-q 60) - 减少并发处理的文件数量
- 可降低质量参数(如
| 功能模块 | 依赖库 | 作用说明 |
|---|---|---|
| AVIF编码 | github.com/Kagami/go-avif |
核心AVIF格式编码实现 |
| 多格式解码 | 标准库image系列 + webp |
支持PNG/JPG/GIF等格式的图像解码 |
| 命令行参数解析 | 标准库flag |
处理用户输入的命令行选项与参数 |
| 并发控制 | 标准库sync |
基于CPU核心数限制并发goroutine数量 |
| 文件路径处理 | 标准库filepath |
处理通配符匹配、路径解析与输出文件生成 |
本项目基于 Apache License 2.0 开源,详见 LICENSE 文件。