2017年12月28日木曜日

MacBookAirでPython3環境設定からのexif撮影日時で画像ファイルrename

たぶんここらへん見て環境設定した。

http://qiita.com/yoshizaki_kkgk/items/4663148a2b3ca078ddbc
決定版】MacでPythonを使って『機械学習』を学ぶための環境構築

http://www.sejuku.net/blog/curriculums-python
Python入門完全攻略ガイド【基礎学習/アプリ開発/仕事獲得】


http://qiita.com/yhashizaki/items/c996297a80024bcaa2eb
Pythonスクレイピング(Beautiful Soup)+XPathでテキスト文指定でリンク先URLを取得

【参考にさせていただいたサイト】
http://gci.t.u-tokyo.ac.jp/tutorial/crawling/
ウェブページからのデータ取得

http://www.slideshare.net/tushuhei/python-xpath
Python と Xpath で ウェブからデータをあつめる

---------------

exiv2 -Pk hoge.jpg
exif情報の種類が見れる

magick identify -verbose hoge.jpg
詳細情報が見れる




---------------

写真アプリの画像ファイルを整理したかった。

撮影日時をexifから取り出してファイル名につけたかった。

ImageMagickというのでできるっぽい


それをinstallしたい
Mac OS X El Capitan - HomebrewでImageMagickのインストール
https://qiita.com/noir/items/dc7366be57f987c04a20

brew install imagemagick
とやったら、command line toolsがないとだめって言われたので

Xcodeをインストールせずに、Command Line Toolsをインストールする方法
https://qiita.com/iwaseasahi/items/eb820762600c815ab100


---------------

iPhotoで、撮影日時をタイトル名に反映させて、タイトル名で書き出すという手もあるが。
https://origin-discussions-jp.apple.com/thread/10183849

---------------


autometerでやる場合

写真のファイル名を撮影した日時にする方法【Mac】
http://www.umurausu.info/blog/archives/add_date_time_to_photo_filename.html



===============



bash 画像の撮影日時(EXIF)を「YYYYMMDD_HHMMSS」形式で取り出してファイル名に付ける(awkとsedで)
http://min117.hatenablog.com/entry/2017/03/04/134130

【ImageMagick】identifyコマンドが実行できない
https://teratail.com/questions/92619

magick identify -verbose IMG_hogehoge.JPG  | grep DateTime: | awk '{print $2"_"$3}' | sed -e s/://g

エラーメッセージが出る
identify: unable to open image ' ': No such file or directory @ error/blob.c/OpenBlob/3323.
identify: no decode delegate for this image format `' @ error/constitute.c/ReadImage/509.
20091124_085544

でもexif情報は取り出せてるよね

-------------------------

いろいろやって
それっぽいのを作ってみたが
./rename.sh
Permission denied
になるときは
chmod +x rename.sh
とするらしい

これはファイルに実行権限がついていないため、起きる現象です。
chmodコマンドを使って実行権限をつけてやりましょう。
http://wadap.hatenablog.com/entry/20080223/1203787519

rename.shの中身
for i in IMG_*jpg
do if
exiv2 -Pk "$i" | grep -q Exif.Photo.DateTimeOriginal ; then
exiv2 -Pk "$i" | grep -q Exif.Photo.DateTimeOriginal |
exiv2 -r'%Y%m%d_%H%M%S'"_:basename:" "$i"
exiv2 -r'%Y%m%d'"_:basename:" "$i"
fi
done

んで
./rename.sh
できた!

Exiv2 exception in print action for file IMG_****.jpg:
Failed to read image data
みたいなメッセージが終了時に表示されるがまあいいや

---------------------

magick identify -verbose IMG_****.jpg  | grep DateTime: | awk '{print $2"_"$3}' | sed -e s/://g

awk 列を抜き出す
例: 2列目だけ
$ cat << __EOF__ | awk '{print $2}'
1 hoge
2 hage
__EOF__
以下出力
hoge
hage

■ ファイル内の文字列をまとめて置換する
カレントディレクトリのファイル全てを対象にする場合
$ grep -l '置換対象の文字列' 置換対象のファイル | xargs sed -i.bak -e 's/置換対象の文字列/置換後の文字列/g'
https://qiita.com/kkyouhei/items/b4ff839a2f36ba194df3

--------------------

http://microgroove.jp/shaolin/2010/07/osx_automator_script_for_renaming_files_using_exif_datetime.html
http://min117.hatenablog.com/entry/2017/03/04/134130

http://serial-experiments.jp/blog/?p=512
https://blanktar.jp/blog/2015/09/linux-photo-change-datetime.html
http://uxmilk.jp/8366
https://qiita.com/kkyouhei/items/b4ff839a2f36ba194df3

http://www.sw-mono.blog/entry/2017/07/30/115350
http://www.nemotos.net/?p=864
http://www.nemotos.net/?p=745
http://www.nemotos.net/?p=182

http://shellscript.sunone.me/for.html


写真のファイル名を撮影した日時にする方法【Mac】
http://www.umurausu.info/blog/archives/add_date_time_to_photo_filename.html


写真取り込み&EXIF情報にあわせてファイル名を変更
http://microgroove.jp/shaolin/2010/07/osx_automator_script_for_renaming_files_using_exif_datetime.html


【覚書】Macで写真のリネームをする
http://zipmouse.hatenablog.com/entry/2017/10/07/202640


Mac OS X Mountain Lion でファイルのタイムスタンプ(日付)を変更する方法
http://blog.dreamhive.co.jp/yama/9708.html


bash 画像の撮影日時(EXIF)を「YYYYMMDD_HHMMSS」形式で取り出してファイル名に付ける(awkとsedで)
http://min117.hatenablog.com/entry/2017/03/04/134130