2020年02月05日
写真データファイルに付く番号について
私のスマホSHカメラは、
撮った画像をDCIMフォルダに保存する。
画像イメージデータ(JPG)の名前は、
固定文字の後ろに連番がふられ管理されている。
SHの場合、
アプリ指定のフォルダに保存されている
名前の後半の一番大きな数字をもとに、
それに1を加算した番号をふっている。
だから、
そのフォルダの写真を移動したり削除すると、
採番数字は逆転となり
ファイル名は重複してしまう。
ちなみに現在のフォルダ名は101SHARP、
その前は100SHARPだった。
ファイル名は、DSC-0408.JPGなどと言う名前で表される。
最近はブログ用の写真もスマホで撮るケースが増えている。
通常のカメラ(一眼)は意識しないと持ち歩かないが、
スマホは既に体の一部であり、
付帯しないと不安になるから恐ろしい。
ある日、
ブログを書こうと写真をサーバーにアップロードし、
ブログテキストを入力してからプレビューをみると、
どうも表示されてくる写真がおかしい。
今アップロードした写真ではなく、
なぜか昔の写真が表示されて来る。
画面から確認してみると、
今回の写真は確かにアップロードされていおり、
一覧表にも表示されている。
写真に付いているタイトルも同じ名前だ。
では、なぜ昔の古い写真が表示されてしまうのか。
前述したように、
スマホの写真はアルファベット文字を頭に
連続番号で管理されている。
今回アップしたイメージファイル名の数字を見てみると、
前回書いたブログの写真の数字より
かなり若い数字が並んでいる。
数字が逆転している。
これでは画像データをユニークに管理することなどできない。
今回の名前に付いている数字の写真は、
既にブログに投稿済みのものであるから、
その写真が表示されている。
ではなぜ同じい名前で写真がアップロードできたのか。
それはブログを管理しているシステム側で
自動的にエイリアス(別称)化され、
物理的な名称は二重とはなっていないからだ。
例えば、ファイル名は「IMG_1858.JPG」が
「IMG_1858-9daa4.JPG」などのようになっている。
タイトルは両方とも、「IMG_1858」と言う名が付いているので、
画面で一覧しただけでは識別できない。
「-9daa4」については、
アプリの仕様であるから理由は解からない。
ではスマホのカメラ側では、
どうデータを管理しているのであろうか。
少し調べて見ると、
どうもスマホの写真保存フォルダDCIMの中の
一番大きな数字のファイル名が基準になっているようだ。
この数字に1を加算して
保存するファイルの名前としている。
その方法だと、
そのフォルダの中のファイルを勝手に移動できない。
なぜなら、
採番基準となるファイルを移動してしまったら、
または消してしまったら、
その数字を基準としているので、
採番基準が変わってしまうことになる。
ちなみにEOSカメラでは、
内部メモリにベース値が保存されているようなので、
採番数字は保存ファイルに依存していない。
しかし数字は有限なので、
9999になれば、次は0001になるのが
当たり前の話である。
スマホは保存する容量も限られているし、
ファイルを管理するには適さない。
何百もの写真をスマホに残しておくと、
何をするにも悲惨である。
ではどうするか。
スマホの中では、
指定フォルダを対象としているので、
その中の一番大きな数字を基準に
カウントアップするので、
ダブることはない。
しかし、
写真データをパソコンなどに移し替えた場合、
同じ名前がパソコンの中に存在してしまう可能性がある。
保存したフォルダが違っていればそれも分からないが、
ファイル名の番号だけでデータを管理していると
時系列が狂ってしまうので、
フォルダの外にファイルを出してしまうと、
ぐちゃぐちゃになってしまう。
ファイルには作成日や更新日なども持っているが、
変更などを加えると変わってしまうので使えない。
このままではきちんとデータを管理することができない。
ならば、ブログサーバーがやっていたように、
表向きの顔と裏向きの顔を変え、
ユニークな名前を付ける必要がある。
ではどのような名前にするのが一番良いのか考えた時、
ファイルの名前の中に
日付と時刻を入れるのが妥当であると結論づける。
そうすればファイル名で並び替えても時系列は変わらない。
写真データのタグ情報を見てみると、
時分までしか記録されていない。
1秒の間に連写すると
同じ時刻情報を持つファイルが複数発生する。
しかし、
カメラアプリでふられる連番があるので、
ファイル名としてはユニークとなり、
並び替えても順番の入り繰りはない。
どうやら日時情報は
名前の先頭に付けた方が良さそうだ。
これでルールは決まったが、
実作業はどうするのか。
まさか手作業でやる気は毛頭ない。
ここでプロラムの登場だ。
以前のブログでも書いたが、
スクリプトを作成し自動的に名前をふり直す方法を考える。
最初から簡単に処理ができるわけはないが、
手法をいろいろと模索する。
今までも音楽ファイルなどは
タグ情報を変更して保存しているので
写真データにもタグ情報があるはずだ。
実際、写真データも同じであって、
カメラが持っているほとんどの情報が
タグの中に記録さてている。
絞り、シャッタースピード、感度、カメラのメーカー、型式等、
沢山の情報を保有している。
問題はその情報をどうやって抜き出すかである。
例のごとくネット上の情報で探っていく。
机上で考えているとすぐに飽きてしまうので、
いつものようにカットアンドトライで進める。
早道なのか、遠回りなのか解からないが、
これが私のやり方だ。
以前作ったファイルを扱うスクリプトは、
FileSystem.Objectを使っていたが、
このオブジェクトは万能ではないらしい。
このオブジェクトには、
タグ情報を取得するコマンドがない。
作業を進めて行くうちに、
ファイルのタグ情報を操れるのは、
WSHのメソッドであることが解かってきた。
WSHとは、Windows Script Hostの略で、
今までスクリプトと呼んでいたのはVBSのことだ。
VBSとはVisual Basic Scriptのこと。
VBSはWSHの環境の中で動作する。
VBSから渡された命令をWSHが動かしている。
スクリプトを動作させるためには、
いくつかの解からないこと、
そしていくつかの問題点もあった。
それについては、「その2」で記述することにする。
タグ:スクリプト
【このカテゴリーの最新記事】
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/9612783
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック