2010-05-13 176 views
5

通過網絡搜索,無法找到使用C或C++讀取/寫入文件元數據的方式,但是,有一些工具可用於此目的,並且還有C#和API中的API Java來做到這一點。但我想在C或C++中從頭開始。使用C/C++讀取/寫入文件元數據

例如,讀取/寫入圖像元數據。

已經發現有三種格式將元數據寫入文件。 EXIF,IPTC和XMP。

謝謝。

+0

目前還不清楚你想要什麼樣的幫助。 – 2010-05-13 07:38:37

回答

4

你爲什麼要從頭開始做?

無論如何,你需要文件,你也可能想看看現有的圖書館的幫助,特別是如果你沒有在該領域的經驗。

你試過Exiv

Exiv2是一個C++庫和命令 行實用程序來管理圖像元數據。它提供對各種格式的圖像的Exif,IPTC和XMP元數據的快速和容易的讀取和寫入訪問。 Exiv2以免費軟件 提供,附有商業許可證,並且在許多項目中使用了 。

+0

不想使用任何庫。感謝有關圖書館的信息。 – 2010-05-17 01:49:47

+0

嗨,Exif在C中有等價物嗎?它似乎只有一個C++ API。 – Arno 2016-04-09 09:36:03

2

有不同的解決方案。一種是定義一個結構(但要確保字段對齊是正確的),然後讀取數據,並使用該結構訪問字段。簡單的例子:

struct header { 
    uint32_t len; 
    unsigned char type; 
    char name[16]; 
}; 

struct header hdr; 

read(fd,&hdr,sizeof(hdr)); 

... access your fields using the structure ... 

的主題是比這更復雜一點;),但因爲你沒有更多的規定,我認爲這仍然有點幫助。

+0

感謝您的結構。但是你意識到自己並不那麼簡單! – 2010-05-17 01:50:45