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++ ベースの類似ツールと比べて、変換速度に明確な優位性がある。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 は試す価値がある。