dnglab:588⭐的相机 RAW 格式转换利器
作为经常处理照片的开发者,RAW 格式转换是绕不开的需求。Adobe 的 DNG Converter 虽然是行业标准,但它闭源、体积大,而且在 Linux 上体验并不好。
今天介绍一个开源替代品——dnglab。
项目简介
dnglab 是一个用 Rust 编写的命令行工具,专门用于将各种相机的 RAW 格式转换为 DNG 标准格式。项目目前有 588 stars,虽然不算热门,但代码质量很高,更新也比较活跃。
# 安装
cargo install dnglab
# 基本用法
dnglab convert IMG_0001.CR3 output.dng
核心特性
广泛的相机支持
目前支持 Canon、Nikon、Sony、Fujifilm、Olympus 等主流品牌的 100+ 相机型号,包括最新的无反机型。完整的支持列表可以在项目文档中查看。
Rust 的性能优势
相比基于 Python 或 C++ 的同类工具,dnglab 在转换速度上有明显优势。对于动辄 50MB 以上的 RAW 文件,这一点很关键。
嵌入元数据
转换过程中会完整保留 EXIF、XMP 等元数据,确保后期处理软件能正确读取相机设置和 GPS 信息。
无损转换
使用 DNG 标准格式输出,不压缩原始数据,保证图像质量无损。
实际使用场景
- 批处理工作流:配合
find或fd批量转换整个目录的 RAW 文件 - 自动化归档:作为脚本的一部分,自动将新导入的照片转为 DNG 入库
- 跨平台需求:在 Linux 服务器或 CI 环境中处理 RAW 文件
# 批量转换示例
find ./photos -name "*.CR3" -exec dnglab convert {} ./dng/ \;
项目状态
dnglab 目前处于积极开发阶段,Rust 的内存安全特性让它在处理大文件时更加可靠。项目文档比较完善,对于想深入了解 RAW 格式结构的人来说,代码本身也是很好的学习材料。
如果你正在寻找一个轻量级、跨平台的 RAW 转换方案,dnglab 值得一试。