SlideShare a Scribd company logo
1 of 10
各種 Raw ファイルの DNG 自動変換
川村 信
目標
  写真を安全に保管したい。(安価で)
近年の写真保管サービス
Google ( Google Photo )
 ・完全無料
 ・画像サイズや種類によっては容量の上限がある。
 ・上限なしは、画質が落ちるモードのみ。
Amazon ( Amazon PrimePhoto )
 ・ Amazon Prime 会員の年会費が必要( 3900 円 / 年)
 ・ Raw ファイルも画質低下なしで容量無制限で保存可能。
 ・使用できる Raw フォーマットの種類に制限あり。
  →すでに Prime 会員なので Amazon PrimePhoto を使いたい!
課題
 ・家で使用している Lumix GF2 の Raw フォーマットは
  非対応。
解決手段
 ・非対応の Raw ファイルを対応している DNG ファイル
へ
  変換してしまおう。
※DNG とは
  Digital Negative (デジタル ネガティブ、 DNG )は Adobe
 によって開発された画像ファイル形式。
   https://ja.wikipedia.org/wiki/Digital_Negative
※Amazon  プライム・フォトの Raw ファイルに関して
https://www.amazon.co.jp/gp/help/customer/display.html?nodeId=201649930
Raw ファイルの DNG 変換について
Adobe が変換ソフトをリリースしているので用いる。
https://www.adobe.com/support/downloads/thankyou.jsp?ftpID=6019&fileID=6052
※ このソフトは、クリックすると GUI が立ち上がる。
複数のファイルを自動的に変換するためにはコマンドラ
インからの制御が必須なのでコマンドラインからの使用
方法を確認する。
http://wwwimages.adobe.com/content/dam/Adobe/en/products/photoshop/pdfs/dng_command
line.pdf
これより使うコマンドオプションは、
-c   Output compressed DNG files(default).
-e   Embed original raw file inside DNG files.
-d   Output converted or extracted files to the specified directory.Default to the
parent directory of the input file.In the case of multiple input files, it defaults to the
parent directory of each file.
ファイルの作成日の課題
 作成した DNG ファイルですが、ファイルの作成日を
 撮影日にあわせたい。
 1.ファイルの撮影日を抽出する。
 2.ファイルの作成日を変更する。
1.ファイルの撮影日を抽出する。
  exiftools というフリーウェアを用いました。
  http://www.sno.phy.queensu.ca/~phil/exiftool/
  exiftools [ ファイル名 ]
 実行すると、ずらずらっとテキストファイルで
 出力されますのでその中に撮影日があります。
2.ファイルの作成日を変更する。
  Cygwin 上の touch コマンドを用いました。
  touch –d “YYYY/MM/DD HH:MM:SS” [ ファイル名 ]
 でファイルの作成日が指定のとおりになります。
※Cygwin について
Windows 上で Unix のコマンドが使えるようにするソフト
diff コマンドを使っており、 Cygwin のオプションで diff も
入れる必要があります。
いままでの各種プログラムを、
Cygwin 上でスクリプトを書いて実行します。
1.ファイルの一覧を取得
2.以前のリストと比較して更新分を抽出
  (比較はディレクトリ単位)
3.ディレクトリ下のファイル名を取得
4. JPG 用、 DNG 用、 RW2 用の3つの転送用スクリプトを生成
  ( JPG 、 DNG はコピーのみ)
5.スクリプトを実行
RW2 用のスクリプトは
1. DNG に変換
2. DNG より撮影日時を抽出
3. DNG のファイル作成日を撮影日時にする。
スクリプトは次ページ
ls -l /cygdrive/v/ServerFolders/ ピクチャ | grep d | awk '{print $9;}' > photo-dir.list^
echo "echo -n > newphoto.list" > temp.macro
diff photo-dir.list photo-dir.list_org | awk '{if ($1=="<") print "mkdir /cygdrive/v/ServerFolders/prime_photo/"$2;}' >> temp.macro
diff photo-dir.list photo-dir.list_org | awk '{if ($1=="<") print "ls -1d /cygdrive/v/ServerFolders/ ピクチャ /"$2"/ >> newphoto.list";}' >> temp.macro*
source temp.macro
echo -n > newphoto.list.jpg
cat newphoto.list | sed 's//cygdrive/v/ServerFolders/ ピクチャ ///g' | grep JPG$ >> newphoto.list.jpg
cat newphoto.list | sed 's//cygdrive/v/ServerFolders/ ピクチャ ///g' | grep jpg$ >> newphoto.list.jpg
cat newphoto.list.jpg | sed 's/// /g' | awk '{print "cmd /c copy "v:ServerFolders ピクチャ "$1""$2"" "v:ServerFoldersprime_photo"$1""$2""
>NUL2>&1";}' > temp.macro_jpg
echo -n > newphoto.list.dng
cat newphoto.list | sed 's//cygdrive/v/ServerFolders/ ピクチャ ///g' | grep DNG$ >> newphoto.list.dng
cat newphoto.list | sed 's//cygdrive/v/ServerFolders/ ピクチャ ///g' | grep dng$ >> newphoto.list.dng
cat newphoto.list.dng | sed 's/// /g' | awk '{print "cmd /c copy "v:ServerFolders ピクチャ "$1""$2"" "v:ServerFoldersprime_photo"$1""$2""
>NUL2>&1";}' > temp.macro_dng
echo -n > newphoto.list.rw2
cat newphoto.list | sed 's//cygdrive/v/ServerFolders/ ピクチャ ///g' | grep RW2$ >> newphoto.list.rw2
cat newphoto.list | sed 's//cygdrive/v/ServerFolders/ ピクチャ ///g' | grep rw2$ >> newphoto.list.rw2
cat newphoto.list.rw2 | sed 's/.RW2$//g' | sed 's/// /g'| awk '{print ""/cygdrive/c/Program Files (x86)/adobe/Adobe DNG Converter.exe" -c -e
-d "v:ServerFoldersprime_photo"$1"" "v:ServerFolders ピクチャ "$1""$2".RW2";"/cygdrive/c/Program Files
(x86)/exiftool/exiftool.exe" "v:ServerFoldersprime_photo"$1""$2".dng" | grep " Create Date" | awk XXX{print $4,$5;}XXX | sed XXXs/:/ /gXXX | awk XXX{print^
YYYtouch -d YYYYYY$1YYY/YYY$2YYY/YYY$3YYY YYY$4YYY:YYY$5YYY:YYY$6YYYYYY
YYYv:ServerFoldersprime_photo"$1""$2".dngYYYYYY}XXX > temp2.macro;source temp2.macro";}' | sed "s/XXX/'/g" | sed 's/YYY/"/g' > temp.macro_rw2
source temp.macro_dng
source temp.macro_jpg
source temp.macro_rw2
おわり
おわり

More Related Content

Viewers also liked (6)

Social Cost Benefit Analysis - SCBA - Seminar by Mohan Kumar G
Social Cost Benefit Analysis - SCBA - Seminar by Mohan Kumar GSocial Cost Benefit Analysis - SCBA - Seminar by Mohan Kumar G
Social Cost Benefit Analysis - SCBA - Seminar by Mohan Kumar G
 
Social cost benefit analysis
Social cost benefit analysisSocial cost benefit analysis
Social cost benefit analysis
 
Social Cost Benefi Analysis
Social Cost Benefi AnalysisSocial Cost Benefi Analysis
Social Cost Benefi Analysis
 
Social Cost Benefit Analysis
Social Cost Benefit Analysis Social Cost Benefit Analysis
Social Cost Benefit Analysis
 
Social cost benefit analysis (scba)
Social cost benefit analysis (scba)Social cost benefit analysis (scba)
Social cost benefit analysis (scba)
 
Slideshare Powerpoint presentation
Slideshare Powerpoint presentationSlideshare Powerpoint presentation
Slideshare Powerpoint presentation
 

Similar to 各種Rawファイルのdng自動変換

ngx_small_light at 第2回闇鍋プログラミング勉強会
ngx_small_light at 第2回闇鍋プログラミング勉強会ngx_small_light at 第2回闇鍋プログラミング勉強会
ngx_small_light at 第2回闇鍋プログラミング勉強会
Tatsuhiko Kubo
 
Gangliaはじめました
GangliaはじめましたGangliaはじめました
Gangliaはじめました
yuzorock
 
【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会
【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会
【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会
真乙 九龍
 

Similar to 各種Rawファイルのdng自動変換 (9)

コミケの取りまとめをしたので
コミケの取りまとめをしたのでコミケの取りまとめをしたので
コミケの取りまとめをしたので
 
ngx_small_light at 第2回闇鍋プログラミング勉強会
ngx_small_light at 第2回闇鍋プログラミング勉強会ngx_small_light at 第2回闇鍋プログラミング勉強会
ngx_small_light at 第2回闇鍋プログラミング勉強会
 
Pycon2014 django performance
Pycon2014 django performancePycon2014 django performance
Pycon2014 django performance
 
Zabbix2.0.3の新機能と変更点
Zabbix2.0.3の新機能と変更点Zabbix2.0.3の新機能と変更点
Zabbix2.0.3の新機能と変更点
 
Gulp ことはじめ
Gulp ことはじめGulp ことはじめ
Gulp ことはじめ
 
Gangliaはじめました
GangliaはじめましたGangliaはじめました
Gangliaはじめました
 
About GStreamer 1.0 application development for beginners
About GStreamer 1.0 application development for beginnersAbout GStreamer 1.0 application development for beginners
About GStreamer 1.0 application development for beginners
 
【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会
【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会
【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会
 
Gradle a new Generation Build Tool
Gradle a new Generation Build ToolGradle a new Generation Build Tool
Gradle a new Generation Build Tool
 

各種Rawファイルのdng自動変換

  • 1. 各種 Raw ファイルの DNG 自動変換 川村 信
  • 2. 目標   写真を安全に保管したい。(安価で) 近年の写真保管サービス Google ( Google Photo )  ・完全無料  ・画像サイズや種類によっては容量の上限がある。  ・上限なしは、画質が落ちるモードのみ。 Amazon ( Amazon PrimePhoto )  ・ Amazon Prime 会員の年会費が必要( 3900 円 / 年)  ・ Raw ファイルも画質低下なしで容量無制限で保存可能。  ・使用できる Raw フォーマットの種類に制限あり。   →すでに Prime 会員なので Amazon PrimePhoto を使いたい!
  • 3. 課題  ・家で使用している Lumix GF2 の Raw フォーマットは   非対応。 解決手段  ・非対応の Raw ファイルを対応している DNG ファイル へ   変換してしまおう。 ※DNG とは   Digital Negative (デジタル ネガティブ、 DNG )は Adobe  によって開発された画像ファイル形式。    https://ja.wikipedia.org/wiki/Digital_Negative ※Amazon  プライム・フォトの Raw ファイルに関して https://www.amazon.co.jp/gp/help/customer/display.html?nodeId=201649930
  • 4. Raw ファイルの DNG 変換について Adobe が変換ソフトをリリースしているので用いる。 https://www.adobe.com/support/downloads/thankyou.jsp?ftpID=6019&fileID=6052 ※ このソフトは、クリックすると GUI が立ち上がる。 複数のファイルを自動的に変換するためにはコマンドラ インからの制御が必須なのでコマンドラインからの使用 方法を確認する。 http://wwwimages.adobe.com/content/dam/Adobe/en/products/photoshop/pdfs/dng_command line.pdf これより使うコマンドオプションは、 -c   Output compressed DNG files(default). -e   Embed original raw file inside DNG files. -d   Output converted or extracted files to the specified directory.Default to the parent directory of the input file.In the case of multiple input files, it defaults to the parent directory of each file.
  • 5. ファイルの作成日の課題  作成した DNG ファイルですが、ファイルの作成日を  撮影日にあわせたい。  1.ファイルの撮影日を抽出する。  2.ファイルの作成日を変更する。 1.ファイルの撮影日を抽出する。   exiftools というフリーウェアを用いました。   http://www.sno.phy.queensu.ca/~phil/exiftool/   exiftools [ ファイル名 ]  実行すると、ずらずらっとテキストファイルで  出力されますのでその中に撮影日があります。
  • 6. 2.ファイルの作成日を変更する。   Cygwin 上の touch コマンドを用いました。   touch –d “YYYY/MM/DD HH:MM:SS” [ ファイル名 ]  でファイルの作成日が指定のとおりになります。 ※Cygwin について Windows 上で Unix のコマンドが使えるようにするソフト diff コマンドを使っており、 Cygwin のオプションで diff も 入れる必要があります。
  • 7. いままでの各種プログラムを、 Cygwin 上でスクリプトを書いて実行します。 1.ファイルの一覧を取得 2.以前のリストと比較して更新分を抽出   (比較はディレクトリ単位) 3.ディレクトリ下のファイル名を取得 4. JPG 用、 DNG 用、 RW2 用の3つの転送用スクリプトを生成   ( JPG 、 DNG はコピーのみ) 5.スクリプトを実行 RW2 用のスクリプトは 1. DNG に変換 2. DNG より撮影日時を抽出 3. DNG のファイル作成日を撮影日時にする。 スクリプトは次ページ
  • 8. ls -l /cygdrive/v/ServerFolders/ ピクチャ | grep d | awk '{print $9;}' > photo-dir.list^ echo "echo -n > newphoto.list" > temp.macro diff photo-dir.list photo-dir.list_org | awk '{if ($1=="<") print "mkdir /cygdrive/v/ServerFolders/prime_photo/"$2;}' >> temp.macro diff photo-dir.list photo-dir.list_org | awk '{if ($1=="<") print "ls -1d /cygdrive/v/ServerFolders/ ピクチャ /"$2"/ >> newphoto.list";}' >> temp.macro* source temp.macro echo -n > newphoto.list.jpg cat newphoto.list | sed 's//cygdrive/v/ServerFolders/ ピクチャ ///g' | grep JPG$ >> newphoto.list.jpg cat newphoto.list | sed 's//cygdrive/v/ServerFolders/ ピクチャ ///g' | grep jpg$ >> newphoto.list.jpg cat newphoto.list.jpg | sed 's/// /g' | awk '{print "cmd /c copy "v:ServerFolders ピクチャ "$1""$2"" "v:ServerFoldersprime_photo"$1""$2"" >NUL2>&1";}' > temp.macro_jpg echo -n > newphoto.list.dng cat newphoto.list | sed 's//cygdrive/v/ServerFolders/ ピクチャ ///g' | grep DNG$ >> newphoto.list.dng cat newphoto.list | sed 's//cygdrive/v/ServerFolders/ ピクチャ ///g' | grep dng$ >> newphoto.list.dng cat newphoto.list.dng | sed 's/// /g' | awk '{print "cmd /c copy "v:ServerFolders ピクチャ "$1""$2"" "v:ServerFoldersprime_photo"$1""$2"" >NUL2>&1";}' > temp.macro_dng echo -n > newphoto.list.rw2 cat newphoto.list | sed 's//cygdrive/v/ServerFolders/ ピクチャ ///g' | grep RW2$ >> newphoto.list.rw2 cat newphoto.list | sed 's//cygdrive/v/ServerFolders/ ピクチャ ///g' | grep rw2$ >> newphoto.list.rw2 cat newphoto.list.rw2 | sed 's/.RW2$//g' | sed 's/// /g'| awk '{print ""/cygdrive/c/Program Files (x86)/adobe/Adobe DNG Converter.exe" -c -e -d "v:ServerFoldersprime_photo"$1"" "v:ServerFolders ピクチャ "$1""$2".RW2";"/cygdrive/c/Program Files (x86)/exiftool/exiftool.exe" "v:ServerFoldersprime_photo"$1""$2".dng" | grep " Create Date" | awk XXX{print $4,$5;}XXX | sed XXXs/:/ /gXXX | awk XXX{print^ YYYtouch -d YYYYYY$1YYY/YYY$2YYY/YYY$3YYY YYY$4YYY:YYY$5YYY:YYY$6YYYYYY YYYv:ServerFoldersprime_photo"$1""$2".dngYYYYYY}XXX > temp2.macro;source temp2.macro";}' | sed "s/XXX/'/g" | sed 's/YYY/"/g' > temp.macro_rw2 source temp.macro_dng source temp.macro_jpg source temp.macro_rw2