2014-06-24 97 views
5

我想在JPEG和PNG文件中讀取/寫入XMP元數據。有沒有辦法使用imagemagick讀/寫XMP元數據?

我能夠做到這一點使用exiftool

~ $ exiftool -xmp-dc:description="FooBar" sample.png 
    1 image files updated 
~ $ exiftool sample.png | grep "Description" 
Description      : FooBar 

但是,我不能使用ImageMagick

~ $ identify -verbose sample.png | grep "Description" 

我的理由寫XMP元數據是讀取XMP元數據所以它可以被Adobe產品讀取。

問題

  • 有沒有辦法使用ImageMagick讀/寫XMP元數據?
+0

題外話,但與Adobe產品的兼容性並不是要操作的唯一原因XMP元數據。 http://www.metadataworkinggroup.org/pdf/mwg_guidance.pdf – asp

+0

png不支持元數據 - > http://stackoverflow.com/questions/9542359/does-png-contain-exif-data-like-jpg –

+0

這只是關於EXIF元數據(儘管Exiftool和Exiv2有一個解決方法)。 PNG支持XMP元數據https://en.wikipedia.org/wiki/Extensible_Metadata_Platform#Location_in_file_types *編輯:* Bah,沒有檢查日期 – StarGeek

回答

1

你想問的是「ImageMagick支持讀取或寫入XMP(描述性)元數據嗎?」。從這個問題的答案,從the documentation,是否定的。 ImageMagick讀取(幾乎)來自文件的所有元數據,但不讀取描述性元數據。

如果出於某種原因,您必須使用ImageMagick來提取XMP元數據,那麼您可以嘗試添加一個過濾器。 Filters can be configured來處理圖像文件,但它們不是ImageMagick本身的一部分。

1

轉換-ping yourimage.jpg XMP: -

+0

謝謝,對我很好! ImageMagick 7 – Mark

+0

如何寫入元數據? –

0

訪問XMP數據可以做如下:

ImageMagick.XmpProfile xmp = image.GetXmpProfile(); 

Console.WriteLine("\n\n----> xmp:" + xmp); 
if (xmp != null) 
{ 
    you have to process the XML data of the XMPs result. 
    ie. use XPATH or some other XML interface. 
} 
相關問題