2012.02.15
Mediatobmの画像ファイルの階層化 (転記)
mediatombででふぉの設定だと画像ファイルは exifの撮影データの日付を読み込んでコンテナ登録されるけど、これだと日付データが狂ってるたりするとどこに登録されるのか滅茶苦茶になってしまう。それに 1998-10-10なんてコンテナできてもそんな前の記憶が残っているわけでもなく、何の写真か全くわからない。
このあたりは sonさんのページにビデオを階層化するで詳しく書かれているので、それを参考に import.jsに手を入れて画像ファイルを階層化するようにする。うちの場合では画像は「20091215 温泉旅行」みたいな感じでディレクトリ分けで保存してるので、このディレクトリ構造がそのまま mediatombのコンテナに渡せれば行けそう。イメージ的にはコンテナ登録は
Database +- Photos +--- 20091215 温泉旅行 | +- ディレクトリ内すべての画像 +-- 2009-12-15 | +-- exif日付 12-15の画像.. +-- 2009-12-16 | +-- exif日付 12-16の画像... +-- Date unspecified +-- exif日付データのない画像...
みたいな感じかな。
//import.js function addImage(obj) { var desc = obj.location; var arr = desc.split(\'/\'); // ディレクトリを \"/\"で分割 var u_path = arr[arr.length -2]; // 1階層上のディレクトリを u_pathにセット var chain = new Array(\'Photos\', \'All Photos\'); // Photos直下に All Photosコンテナを配置 addCdsObject(obj, createContainerChain(chain), UPNP_CLASS_CONTAINER); // 画像を All Photoesに格納 var chain = new Array(\'Photos\', u_path); // Photos直下にディレクトリ名のコンテナを配置 addCdsObject(obj, createContainerChain(chain), UPNP_CLASS_CONTAINER); // ディレクトリ内のすべての画像を格納 var date = obj.meta[M_DATE]; if (date) { chain = new Array(\'Photos\', u_path, date); // Photos/ディレクトリ名配下に exif日付のコンテナを配置 addCdsObject(obj, createContainerChain(chain), UPNP_CLASS_CONTAINER); // 画像を格納 } else // exif日付データがなかったら { chain = new Array(\'Photos\', u_path, \'Date unspecified\') // Photos/ディレクトリ名配下に日付なしを配置 addCdsObject(obj, createContainerChain(chain), UPNP_CLASS_CONTAINER); // 画像を格納 } }
Trackback URL
Comment & Trackback
Comment feed
Comment