HOT TIN ROOF

 
--
 
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
    --:-- | Top
 
19
 
タイトル

 画像のファイル名を「カメラ名+日付」に変えてわかりやすく整理しようと、写真データ内部のタグ情報(EXIFデータ)を参照してスクリプトを組めないか模索していたところ、exiftoolっていうのを見つけた。perlのモジュールらしい。AppleScriptからこれを呼び出してファイル名を一括変換できないかとしばらく格闘。どうにか成功したのでソースをアップしておく。使いたい人は自由に使ってね。

ソフト形態:Mac OS X用ドロップレット(Mac OS 10.6にて開発、おそらく古いバージョンでも動くと思われるが未検証。)

機能:「カメラ名 撮影日 撮影時間.拡張子」の形でドラッグ&ドロップしたファイルをリネームする。
 例えば 「DSC_7663.jpg」 を 「NIKON D300 20100811 140040.jpg」 のように変換。
 連写したときなど「秒まで同じ」ファイルができるので、その場合は「_2」「_3」のように連番をつけるようにした。RAWファイルも大概いけるはず。


 あ、「exiftool」をあらかじめインストールしておかないと動かないので忘れずに↓。
    http://www.sno.phy.queensu.ca/~phil/exiftool/

----------------------------------------------------------------------------------------
on open drop_items
tell application "Finder"
set i to 1
set imagenum to count drop_items
repeat imagenum times
set Obj to item i of drop_items

--exiftool経由でカメラ名データ取得
set cameraname to quoted form of POSIX path of (Obj as alias)
set scrptMO to "exiftool -model " & cameraname
set the_cameraname to do shell script scrptMO

set delim to AppleScript's text item delimiters
set AppleScript's text item delimiters to ": "
set cameraname to item 2 of text items of the_cameraname
set AppleScript's text item delimiters to ""

--メーカー名と機種名の間のスペースを削除
--set delim to AppleScript's text item delimiters
--set AppleScript's text item delimiters to " "
--set cameraname2 to text items of cameraname
--set AppleScript's text item delimiters to ""
--set cameraname to cameraname2 as text

--exiftool経由で日付時刻データ取得
set hidukejikoku to quoted form of POSIX path of (Obj as alias)
set scrptMO to "exiftool -DateTimeOriginal " & hidukejikoku
set the_hidukejikoku to do shell script scrptMO

set delim to AppleScript's text item delimiters
set AppleScript's text item delimiters to ":"
set hidukejikoku1 to item 2 of text items of the_hidukejikoku
set hidukejikoku2 to item 3 of text items of the_hidukejikoku
set hidukejikoku3 to item 4 of text items of the_hidukejikoku
set hidukejikoku4 to item 5 of text items of the_hidukejikoku
set hidukejikoku5 to item 6 of text items of the_hidukejikoku
set hidukejikoku to hidukejikoku1 & hidukejikoku2 & hidukejikoku3 & hidukejikoku4 & hidukejikoku5
set AppleScript's text item delimiters to ""

--日付の間のスペースを削除
--set delim to AppleScript's text item delimiters
--set AppleScript's text item delimiters to " "
--set hidukejikoku2 to text items of hidukejikoku
--set AppleScript's text item delimiters to ""
--set hidukejikoku to hidukejikoku2 as text

--拡張子を取得
set Orifname to name of Obj
set fname to Orifname as text
set delim to AppleScript's text item delimiters
set AppleScript's text item delimiters to "."
set kakutyousi to item 2 of text items of fname
set AppleScript's text item delimiters to ""

--リネーム処理
set subNUM to 1
set CHK to "NO"
repeat until CHK is "OK"
set fname to name of Obj
set fname to fname as text
if subNUM = 1 then
set fname to cameraname & hidukejikoku
end if
if subNUM ≠ 1 then
set fname to cameraname & hidukejikoku & "_" & subNUM
end if
set name of Obj to fname & "." & kakutyousi
--もし同一時刻のファイルが存在した場合、サブナンバーをつける
set ChkFname to name of Obj
if ChkFname is not Orifname then
set CHK to "OK"
end if
if ChkFname is Orifname then
set CHK to "NO"
set subNUM to subNUM + 1
end if
end repeat
set i to i + 1
end repeat
end tell
end open
----------------------------------------------------------------------------------------

 以上のソースをAppleScriptエディタにコピーし、「アプリケーション」形式で保存して使ってね。
 ふー、やっぱちゃんと動くと達成感あって気持ちいい。

 写真は渡良瀬川の河原で見つけた野の花。
スポンサーサイト
    21:32 | Trackback : 0 | Comment : 0 | Top
Comment







(編集・削除用)


管理者にだけ表示を許可
Trackback
http://hottinroof.blog54.fc2.com/tb.php/77-0f5c88a8
プロフィール

野分十郎太

Author:野分十郎太
デジカメから入ったカメラ好きだが、オールドレンズ→オールドボディと時代を全速力で逆走中。
最近は東側世界製の機材がお気に入り(単に金がないからとも言う)。

よろしく~。

カテゴリ
最新記事
月別アーカイブ
最新コメント
最新トラックバック
検索フォーム
リンク
RSSリンクの表示
ブロとも申請フォーム
QRコード
QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。