Skip to content

Repository files navigation

cr3-to-jpg

佳能 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 已内置

便携包(Release)

无需安装 Python。Windows 包已捆绑 exiftool.exe;Linux 包捆绑 exiftool 脚本(需系统有 perl)。


快速开始

方式 A:下载 Release 包(推荐 Windows 用户)

  1. 打开 Gitea:http://192.168.112.100:3000/gaojiawei/canon_cr3_to_jpg/releases
  2. 下载最新正式版(当前 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

图形界面功能:选择输入/输出文件夹、子文件夹递归、覆盖已有文件、并行数、进度条与日志。

方式 B:源码安装(开发 / 调试)

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-gui

Windows(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-gui

命令行参数

cr3-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.execr3-to-jpg-gui.exe--version 在 PowerShell 中请加引号;省略时默认读取 pyproject.toml 版本。

打包脚本会在结束时校验两个 exe 是否都存在,缺失则报错。


Gitea Actions 配置

仓库已包含 .gitea/workflows/(及兼容的 .github/workflows/)。

1. 启用 Actions

在 Gitea 站点管理里启用 Actions,并在 Ubuntu / Windows 机器注册 act_runner

2. Runner 标签

Workflow 使用 ubuntu-latestwindows-latest。请确保 runner 注册时包含这些标签;若使用自定义标签,需同步修改 workflow 中的 runs-on

3. Release 自动上传(可选)

在仓库 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 重新解码生成。

About

CR3格式照片批量处理转换为jpg格式。Canon CR3 batch to JPEG converter. Add CLI tool with Canon L Fine quality profile, parallel processing, EXIF preservation, and Ubuntu setup documentation

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages