先日、ART のオンラインフォーラムで、Nikon Z5II の高効率圧縮 NEF ファイルが読み込めないので何とかならないかという相談を寄せられた方がいました。
この話題は当ブログでも扱ったことがあります。
yasuo-ssi.hatenablog.com この技術は、into Pix 社の TicoRaw という特許技術を使っているので、使用許諾を受けないと使えませんが、FOSS (フリー・オープンソース ソフト) では、契約主体、契約資金提供社の問題以外に、秘密保持契約を求められたときに、契約できない (ソースがオープンなため) という原理的な問題があって使えません。
従って、FOSS ソフトで扱いたい場合、フリーの Adobe DNG Converter で一旦、圧縮の解除された DNG ファイルに変換して使うしかないのですが...
ところが Griggio 氏が非常にクールな解決策を提示しました。ART に外部ソフトを使って非対応ファイル形式のファイルを読み込めるオプションがありますが、これを使うと読めるというのです。つまり、外部の Adobe DNG Converter を外部コンバータとして利用して直接 ART に読んでしまおうということです。上のフォーラムの回答では Mac OS の場合を回答しているのですが、具体的には、以下の設定手順になります。なお、当然ですが事前にAdobe DNG Converter をインストールしておいてください。
■ Mac OS 版 (ART 公式 Mac OS 版バイナリー準拠)
1. imageio ディレクトリの作成
$HOME/.config/ART/ 以下に imageio というディレクトリを作成する (注意: 公式 Mac OS バイナリーの個人設定ディレクトリは、$HOME/Application Support/Library 以下になりません。Mac OS の標準的流儀に従わず、Linux 版と同じなので注意が必要です)。既にある場合は作成する必要はありません。
2. Nikon_Z5_2.txt ファイルの作成
以下の内容で、上記ファイルを作成し、imageio ディレクトリに置く。
[ART RAWImageIO]
Extension=nef
Make=Nikon
Model=Z5_2
ReadCommand=./load_adng_raw.sh
3. load_adng_raw.sh シェルスクリプトを作成
以下の内容で、上記ファイルを作成し、同じディレクトリに置き、実行権限を付与。
#!/bin/sh outname=$(basename "$2") outdir=$(dirname "$2") "/Applications/Adobe DNG Converter.app/Contents/MacOS/Adobe DNG Converter" -d "$outdir" -o "$outname" "$1"
すると、ファイル選択画面から Z5II の NEF ファイルをダブルクリックして読むと自動的に DNG Converter を使って (しかし全く DNG Converter を意識せずに)、読み込んでくれるようになります。これは素晴らしい! 特に何かコマンドを起動するという必要は全くありません。
なお、カメラモデルが、Z9 だったり、Z50II だったりする方は、上の Z5_2 という部分を適宜変更していただければ OK です。するとこのモデルに合致する NEF ファイルはすべてこのコマンドを通してデコードします。ただし、このモデル名の表記は Exif 情報おける表記と一致する必要があります。一致しないと、コマンドがスルーされてしまい、デコードできません。また間違ったモデル名を設定すると、必要がないのにこのコマンドを通してしまいます。

この結果を見て、以下 Windows および Linux でもできるかどうか、私の方で探ってみました。以下手順です。Adobe DNG Converter がインストールされていることが前提です。なお、Linux 版の DNG Converter はないので、Wine を使って、Windows 版の DNG Converter をインストールしておいてください。
■ Windows 版
0. Python のインストール
Python の公式サイトから Python をダウンロードし、インストールする。既にインストールされていれば不要。Windows ではシェルスクリプトの代わりに Python を使う。
1. imageio ディレクトリの作成
C:\Users\%USERNAME%\AppData\Roaming\ART\ 以下に imageio というディレクトリを作成する。
2. Nikon_Z5_2.txt ファイルの作成
以下の内容で、上記ファイルを作成し、imageio ディレクトリに置く。
[ART RAWImageIO]
Extension=nef
Make=Nikon
Model=Z5_2
ReadCommand=python ./load_adng_raw.py
3. load_adng_raw.py Python スクリプトを作成
以下の内容で、上記ファイルを作成し、同じディレクトリに置く。
#!/usr/bin/env python3
import os
import subprocess
import sys
def convert_to_dng(input_file, output_path):
# divide output file name and dir name
outname = os.path.basename(output_path)
outdir = os.path.dirname(output_path)
# Adobe DNG Converter' path(for windows)
converter_path = "C:\Program Files\Adobe\Adobe DNG Converter\Adobe DNG Converter.exe"
# construction of command
cmd = [
converter_path,
"-d", outdir, # output dir
"-o", outname, # output file name
input_file # input file
]
# execute the command
try:
subprocess.run(cmd, check=True)
print(f"✅ finished: {output_path}")
except subprocess.CalledProcessError as e:
print("❌ error in conversion process")
print(e)
if __name__ == "__main__":
if len(sys.argv) != 3:
print("usage: python load_adng_raw.py input file name output file name")
sys.exit(1)
input_file = sys.argv[1]
output_path = sys.argv[2]
convert_to_dng(input_file, output_path)
エラー確認も兼ねて、単独で引数なしで実行した場合は「使い方」を表示するような余計なコードも入れていますが、コピペして使っていただければ問題ないかと思います。
■ Linux 版
0. Wine を使って、DNG Converter の Windows 版をインストール
1. 〜 2. までは、Mac OS 版と同じ
3. load_adng_raw.sh シェルスクリプトを作成
以下の内容で、上記ファイルを作成し、imageio ディレクトリに置き、実行権限を付与。
#!/bin/sh outname=$(basename "$2") outdir=$(dirname "$2") wine "/home/*username*/.wine/drive_c/Program Files/Adobe/Adobe DNG Converter/Adobe DNG Converter.exe" -d "Z:\""$outdir" -o "$outname" "Z:\""$1"
なお、Linux 上で Wine を使って、Windows 対応アプリケーションをインストールする方法については、以下をご参照ください。
yasuo-ssi.hatenablog.com 記事の時点では、Wine のバージョンは 6 でしたが、Kubuntu 24.02 の場合は apt で入れると 9 になっています。
