佳能 CR3 批量转 JPEG 命令行工具。
将 CR3 解码为全尺寸 JPEG,输出参数对齐佳能 RAW + L Fine 同时拍摄时的机内 JPEG 标准,并从 CR3 复制基础 EXIF 信息。
支持平台:
| 平台 | 命令行 | 图形界面 | 分发方式 |
|---|---|---|---|
| Ubuntu | ✅ | — | 源码安装 / 便携包 |
| Windows x64 | ✅ | ✅ | 便携包(推荐)/ 源码安装 |
| 项目 | Linux | Windows |
|---|---|---|
| Python | 3.10+(推荐 3.12) | 3.10+(推荐 3.12) |
| ExifTool | libimage-exiftool-perl |
ExifTool 官方包 并加入 PATH |
| LibRaw | libraw-dev(rawpy 编译用;wheel 可免) |
PyPI wheel 已内置 |
无需安装 Python。Windows 包已捆绑 exiftool.exe;Linux 包捆绑 exiftool 脚本(需系统有 perl)。
- 打开 Gitea:
http://192.168.112.100:3000/gaojiawei/canon_cr3_to_jpg/releases - 下载最新正式版(当前 v0.2.0)
Windows 使用:
# 解压后
cd cr3-to-jpg
# 图形界面(推荐)
.\cr3-to-jpg-gui.exe
# 命令行
.\cr3-to-jpg.exe D:\photos\cr3 -o D:\photos\jpg
.\cr3-to-jpg.exe D:\photos\cr3 -o D:\photos\jpg --force -r -j 4图形界面功能:选择输入/输出文件夹、子文件夹递归、覆盖已有文件、并行数、进度条与日志。
Ubuntu:
sudo apt update
sudo apt install -y libraw-dev libimage-exiftool-perl python3-venv python3-pip
cd /path/to/canon_cr3_to_jpg
python3 -m venv .venv
source .venv/bin/activate
pip install -U pip
pip install -e .
cr3-to-jpg --help
cr3-to-jpg-guiWindows(PowerShell):
git clone http://192.168.112.100:3000/gaojiawei/canon_cr3_to_jpg.git
cd canon_cr3_to_jpg
py -3.12 -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -U pip
pip install -e .
# 需先将 exiftool.exe 加入 PATH,或使用便携包
cr3-to-jpg --help
cr3-to-jpg-guicr3-to-jpg <input> -o <output> [-r] [-j N] [--force]| 参数 | 说明 |
|---|---|
input |
CR3 文件或目录 |
-o, --output |
输出目录(必填) |
-j, --jobs |
并行进程数(默认 CPU 核数 - 1) |
-r, --recursive |
递归扫描子目录 |
--force |
覆盖已存在的 JPG |
运行时会显示进度条。已存在且未修改的 JPG 会自动跳过。
开发完成 → push master → CI 自动测试
↓
打测试 tag:v0.1.0-rc.1
↓
Gitea Actions 构建 Windows/Linux 包
↓
你在 Windows 下载 rc 包验收
↓
通过后打正式 tag:v0.1.0
↓
Gitea Release 发布为正式版(非 Pre-release)
| Tag 格式 | 类型 | 示例 |
|---|---|---|
v*.*.*-rc.* |
测试版(Pre-release) | v0.1.0-rc.1 |
v*.*.* |
正式版 | v0.1.0 |
v*.*.* + 补丁 |
正式版 bug 修复 | v0.1.1 |
有 bug 时不删除旧 tag,发新补丁版本并在 Release 说明中标注「请升级」。
在干净 .venv 中执行(不要在 Anaconda base 环境打包):
.\.venv\Scripts\Activate.ps1
pip install -e .
python packaging/build_portable.py --version "0.2.0-rc.2"
dir dist\cr3-to-jpg\*.exe应看到 cr3-to-jpg.exe 与 cr3-to-jpg-gui.exe。--version 在 PowerShell 中请加引号;省略时默认读取 pyproject.toml 版本。
打包脚本会在结束时校验两个 exe 是否都存在,缺失则报错。
仓库已包含 .gitea/workflows/(及兼容的 .github/workflows/)。
在 Gitea 站点管理里启用 Actions,并在 Ubuntu / Windows 机器注册 act_runner。
Workflow 使用 ubuntu-latest 与 windows-latest。请确保 runner 注册时包含这些标签;若使用自定义标签,需同步修改 workflow 中的 runs-on。
在仓库 Settings → Secrets 添加:
| Secret | 说明 |
|---|---|
GITEA_TOKEN |
Gitea 个人访问令牌(建议用 token,不要用账号密码) |
未配置 token 时,构建产物仍会出现在 Actions Artifacts 中,可手动下载。
固定对齐佳能官方 RAW + L Fine 标准(首版写死,暂不可配置):
| 参数 | 值 |
|---|---|
| 尺寸 | L(全分辨率,不缩放) |
| 佳能质量等级 | 8(Fine 默认档) |
| JPEG quality | 86 |
| 色度采样 | 4:2:0 |
| 位深 | 8 bit |
| 色空间 | 从 CR3 读取,默认 sRGB |
| 白平衡 | 相机 WB |
| EXIF | 从 CR3 复制基础拍摄信息 |
canon_cr3_to_jpg/
├── cr3_to_jpg/
│ ├── cli.py
│ ├── gui.py # 图形界面
│ ├── batch.py
│ ├── converter.py
│ ├── metadata.py
│ ├── profile.py
│ └── runtime.py # 便携包路径 / exiftool 解析
├── packaging/
│ ├── build_portable.py
│ ├── fetch_exiftool.py
│ └── cr3-to-jpg.spec
├── scripts/
│ └── smoke_test.py
├── .gitea/workflows/
│ ├── ci.yml
│ └── release.yml
├── pyproject.toml
└── README.md
当前版本:0.2.0(稳定版)
- Ubuntu:命令行
- Windows x64:命令行 + 图形界面
arronrose
- 机内 JPEG 还经过佳能 Picture Style、锐化等专有流程,本工具对齐的是编码参数,视觉上接近但不一定与机内 JPG 逐像素一致。
- 若同目录已有相机生成的
.JPG,本工具不会自动使用它,而是从 CR3 重新解码生成。