Python3を使ってRW2ファイルを自動でJPEGに変換する

Panasonic RW2形式のデータを一括で現像するの続きです。

前回、ufraw-batchを使い、RW2なRAWデータを一括でJPEGに現像できるようになりました。これでターミナルを開いて、現像したいフォルダに移動し、コマンドを実行すればフォルダ内のJPEG一括で現像できるようになりました。

しかし、毎回上記の手順を繰り返すのはとても大変です。できればフォルダにRAWデータを放り込むだけにしたいです。

現像自動化の方針

ということで、フォルダ内のRW2をJPEGに自動で現像できるようにします。方針としては次のようなシンプルなものです。

  • RW2と現像後にできるJPEGは拡張子のみ異なりファイル名は同じものにする
  • 定期的にRW2が入っているフォルダを調べる
  • JPEGに現像していないRW2ファイルがあれば現像する

まずは、RW2を入れるフォルダと現像済みのJPEGを入れるフォルダを作っておきます。RW2が入っているフォルダを調べ、JPEGを格納するフォルダにデータが作成されていないデータがあれば、現像します。この処理はPythonで作ります。多分シェルスクリプトでもできますが、自信がないのとついでにPythonの勉強をしたかったので・・・。

次は、作成したスクリプトを定期的に実行するだけです。これはcronを使います。windowsを使っている人はcronを入れるかタスクスケジューラなどで頑張ってください。(windowsを持ってないので試せていません。すみません。)
1分間隔くらいで実行します。

現像自動化の実装

実際に実装していきます。まずはスクリプトが使うフォルダを作ります。


$ mkdir -p ~/darkroom/negative_film
$ mkdir -p ~/darkroom/jpeg

darkroomというフォルダの下に、negative_filmとjpegフォルダを作ります。negative_filmにRW2ファイルを格納し、jpegに現像後のファイルを入れます。

下のスクリプトを使ってnegative_film以下のRW2ファイルを現像してjpegフォルダに保存します。

このスクリプトをcronに設定して定期的に実行し、negative_filmフォルダ内のRAWファイルを現像します。「crontab -e」で1分間隔でdeveloping_machine.pyを実行します。


$ crontab -e
*/1 * * * * python /path/to/developing_machine.py ~/darkroom

まとめ

Python3とcronを使って、RW2ファイルを自動で現像できないか考えてみました。RW2を現像するために、Python3からufraw-batchを呼び出すようにしています。

少し独特なやり方ですが、ufrawとPython3とcronが入っていればそこそこ簡単に動きます。

シェアする

  • このエントリーをはてなブックマークに追加