PicasaのDBを何とか解読したい (PMPファイル編)
PicasaのDBとはなにか?
Google PicasaとはGoogleの画像管理ツールないしwebサービスであり、デジカメの画像を管理するのに比較的良いインターフェースを持っている、というのをあらためて解説する必要はないだろう。そのPicasaは自身の管理するデータに関するメタデータを、Windowsで言うところの%LOCALAPPDATA%\Google\Picasa2\db3
においている。
DBは大きく分けて二種類のファイルに分かれていて、片方はpmpファイルであり、もう一方はdbファイルである。
なぜ読みたいのか
HDDが壊れたのでせめてPicasaのサムネイルを復元したいからです。
PMPファイルの読み方
今回はdbファイルを読むには至らなかった。欲しいサムネイルはdbファイルに入っていて、更にindexではない方のdbファイルにはJFIF形式のJPEG画像が延々と入っているらしいことを確認している。しかし、これはただのJPEGの連続であり、もう一方のfoobar_index.dbというものを読まなければメタ情報は手に入らない。このファイル形式はThumbs.dbと同じであるという主張を確認できるが事実かはわからない。
そこで急がばまわれ、pmpファイルの方を解析してみることにした。
http://sbktech.blogspot.jp/2011/12/picasa-pmp-format.html
実際の実装
ただただ上のURLにあるバイナリのパーサを忠実に作る。そこにあるJavaのファイルよりだいぶ簡略にかけていると思う。
https://github.com/liquidamber/PicasaDB