如何剥离EXIF,除了使用图像魔术"date taken"?



我想通过剥离EXIF元数据(convert -strip ...)来减小图像大小,但问题是我想保留"拍摄日期"条目。有可能吗?例如:convert -quality 80 -strip-except "date taken" source.jpg dest.jpg

这取决于将"拍摄日期""保存在正常图像查看程序可以解析的正确位置"的重要性。如果您只想将原始日期/时间保存在文件的某个地方,您可以提取它并将其保存在"注释"字段中,如下所示:

# Use ImageMagick to get the exif:DateTime, e.g. "exif:DateTime: 2014:12:23 13:51:00"
d=$(identify -verbose image.jpg | grep "exif:DateTime:")
# Strip EXIF but then put DateTime in the "Comment" field
convert image.jpg -strip -set comment "$d" result.jpg

更新

事实上,你可以更简洁地获得日期/时间,并且通过使用以一种与平台无关的方式

identify -format "%[EXIF:DateTime]" image.jpg
2014:12:23 13:51:00

日期和时间现在在"注释"字段中,只是ImageViewers在那里找不到它——尽管你可以使用:

identify -verbose result.jpg
Image: result.jpg
  Format: JPEG (Joint Photographic Experts Group JFIF format)
  Mime type: image/jpeg
  Class: DirectClass
  Geometry: 3264x2448+0+0
  Resolution: 72x72
  Print size: 45.3333x34
  Units: PixelsPerInch
  Type: TrueColor
  Endianess: Undefined
  Colorspace: sRGB
  Depth: 8-bit
  Channel depth:
    red: 8-bit
  ...
  ...
  Interlace: None
  Intensity: Undefined
  Compose: Over
  Page geometry: 3264x2448+0+0
  Dispose: Undefined
  Iterations: 0
  Compression: JPEG
  Quality: 96
  Orientation: Undefined
  Properties:
    comment:     exif:DateTime: 2014:12:23 13:51:00

不过,更好的方法是使用jhead。它有以下选项:

-ft        Set filetime to EXIF time
-purejpg   Strip EXIF, IPTC and other meta-data
-mkexif    Create a minimal EXIF section
-dsft      Set EXIF time to filetime

你可以随心所欲地把它们串在一起,但可能是按照我展示的顺序。

相关内容

  • 没有找到相关文章

最新更新