使用ImageMagick提取EXIF数据为文本

48

有没有一种简单的方法使用ImageMagick从图像文件中提取EXIF数据并将其转换为文本呢? 就像提取IPTC数据的方法一样:

convert input.jpeg data.iptc <= binary data
convert input.jpeg data.iptctext <= textual data

遗憾的是这对EXIF数据无效:

convert input.jpeg data.exif <= binary data
convert input.jpeg data.exiftext <= not working

我知道我可以使用

identify -verbose input.jpeg

但这样我就必须解析结果才能搜索所有的EXIF和IPTC数据。

那么有没有使用纯ImageMagick的简单方法来实现呢?

1个回答

61

就像这样:

identify -format '%[EXIF:*]' image.jpg

输出:

exif:ApertureValue=4845/1918
exif:BrightnessValue=4991/792
exif:ColorSpace=1
exif:ComponentsConfiguration=1, 2, 3, 0
exif:Compression=6
exif:DateTime=2014:08:31 14:18:07
exif:DateTimeDigitized=2014:08:31 14:18:07
exif:DateTimeOriginal=2014:08:31 14:18:07
exif:ExifImageLength=2448
exif:ExifImageWidth=3264
exif:ExifOffset=204
exif:ExifVersion=48, 50, 50, 49
...
...

谢谢,那个可以用。还有一个问题:你知道为什么“%[IPTC:]”不起作用,但“%[IPTC:2:120]”可以吗?是因为IPTC不支持吗? - Werzi2001
很遗憾,我不知道 - 我在处理IPTC数据时遇到了各种问题 - 这似乎非常棘手 - 在这里我的答案中可能有一些对你有用的信息... http://stackoverflow.com/questions/25998606/adding-data-to-iptc-field-using-perl/26014887#26014887 - Mark Setchell
你也可以尝试使用 exiv2 - Mark Setchell
2
@MarkSetchell 如果我将这些数据保存到文件中,那么它是否是一个有效的“exif文件”,可以用来将exif数据注入到没有任何exif数据的文件中? - thinsoldier
1
这很奇怪。如果我想提取EXIF创建日期,我必须使用标签"date:create" ... EXIF返回空白 - Michael

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接