2017年3月14日 星期二

網路相簿 | 相片管理軟體 - Zenphoto (3) 中繼資訊

安裝完Zenphoto,正開心的使用Zenphoto新增標籤,小編突然想到這些標籤會存回原始照片嗎?

答案不會 ◢▆▅▄▃ 崩╰(〒皿〒)╯潰▃▄▅▆◣



簡單來說,Zenphoto不會更動相片裡面的中繼資訊(metadata),那麼他是怎麼管理這些資料呢?

1. 上傳照片時,將這些metatdata存入MySQL資料庫
其中images這個table存了大部分的metadata,標籤(tags)是另外存在tags這個table,並在obj_to_tag將tags與imges連結,例如小編現在有3個tags,分別為RED、BLUE、GREEN,那我如果要將一張藍天的照片加上BLUE的tag,那麼obj_to_tag就會新增一列(藍天,BLUE)這個連結(實際上是以照片ID、標籤ID儲存)

2. 在後台修改照片說明、標籤,是更改MySQL資料庫的內容,所以就不會動到原始照片囉!

那有沒有辦法將MySQL資料庫的資料寫回照片? 

答案是可以的!小編利用python寫了簡單的程式,可以從MySQL擷取想要回存的內容,並利用exiftool這個程式修改照片的中繼資料,程式碼如下:
以這裡為例,第9第10行會將albumid=3的所有照片的id,filename,desc,IPTCImageCaption存到r這個array裡面,第16行是各別將每個照片擁有的tags擷取出來,並以", "作為分隔,接著在22行或24行呼叫exiftool,將MySQL找到的資料存回圖片,這裡是將圖片另存到資料夾iptctool_update。這麼一來就解決小編的問題囉!

0 意見:

張貼留言