有什么方法可以读取 Picasa 数据库?
Picasa 数据库的格式是什么?
是否有任何 API 可以访问数据库?
至少在 Picasa 3 中,内部数据库存储在一组.pmp
文件中,这些文件位于文件旁边,位于.db
Picasa 应用程序数据的标准位置之一。例如,在 Mac 上,它位于$HOME/Library/Application Support/Google/Picasa3/db3
令人困惑的是,这些.db
文件不包含数据库,它们只是保存各种图像组的缩略图预览的容器。它们采用标准 Windowsthumbs.db
格式,更多信息来自这个答案。
这些.pmp
文件包含数据库,并且是非标准格式。每个表有一组文件,每个字段有一个文件。给定表的文件名共享相同的前缀。例如,catdata
表中的数据来自这组文件:
$ ls -1 catdata_*
catdata_0
catdata_catpri.pmp
catdata_name.pmp
catdata_state.pmp
它具有三个字段catpri
,name
和state
。从 Picasa 3.9.0.522 开始,我已经在博客中写了一些关于这些文件格式的部分注释,以及一个小型 java 程序,用于转储尽可能多的数据,因为我已经能够理解。
您可以尝试使用 exportpicasa 实用程序 ( http://sourceforge.net/projects/exportpicasa/ ) 读取 Picasa 数据库。它是测试版,欢迎提供反馈。
在我看来,它本身似乎没有“数据库”。
有一个文件列出了 picasa 'watches' 文件夹,对于 vista 它位于
C:\Users\<myaccount>\AppData\Local\Google\Picasa2Albums\
和 XP 在
C:\Documents and Settings\<myaccount>\Local Settings\application data\google\Picasa2Albums\
在被监视的文件夹中有.picasa.ini
存储picasa.ini
一些数据的文件。
所有这些文件都是人类可读的,因此它们应该很容易解析。
任何现代图像库都应该能够解析 IPTC 数据(在 python 中尝试“从 PIL 导入 IptcImagePlugin”)
在数据库文件夹(在 Windows 7 上:C:\Users\User\AppData\Local\Google\Picasa2\db3)中,有一些pmp文件代表下表:
每个 pmp 文件包含表的一列的所有数据。文件名遵循模式表_*column*.pmp。文件本身是二进制格式。
然后,文件名(用于图片或文件夹的路径)位于文件thumbindex.db内,该文件是二进制文件,与 pmp 文件不同。
2种二进制格式详解:如何读取Picasa 3.9数据库并提取人脸数据
中还有更多数据\Documents and Settings\xxx\Local Settings\Application Data\Google\Picasa2\db3\
。
thumbs*.db 似乎是 .jpg 图像的串联。
似乎是专有文件格式...