如何使用批处理或命令行从 OSX 中的文件中删除 EXIF 信息

如何使用批处理或命令行从 OSX 中的文件中删除 EXIF 信息

我知道有几种 Windows 程序可以执行此操作,Photoshop 有一个“存储为 Web”选项可以执行此操作,但我想要一个命令行或批处理选项。有什么想法吗?

答案1

看一下Imagemagick. 它的-strip选项是清除所有个人资料和评论的图像。

convert orig.jpg -strip result.jpg

或者

mogrify -strip orig.jpg

以下是更多信息使用 Imagemagick 处理照片。

答案2

我使用 macOS(目前为 11.1(Big Sur)),并且我喜欢使用Exif工具用于此类批量元数据操作。从 Mac OS X 10.6 开始就一直使用它,甚至在 Ubuntu 等不同版本的 Linux 上也使用过,效果非常好。

就批量脚本而言,我使用这个非常简单的 Bash 脚本,它使用find清除图像中的所有元数据;在本例中为 JPEG ( .jpg) 图像:

find 'Path/To/The/Images' -type f -name '*.jpg' |\
  while read FILENAME
  do
    exiftool -all= -overwrite_original_in_place "${FILENAME}"
  done

要使用该脚本,只需将 更改'Path/To/The/Images'为匹配您的实际图像文件目录路径;它可以是完整路径或相对路径,在本例中它是相对路径。您可以将其更改'*.jpg'为匹配您想要处理的任何文件扩展名,甚至可以将其设置'*'为盲目处理所有文件。我通常处理 JPEG,因此.jpg这个小示例脚本中的扩展名是 。

该脚本的核心魔法是实际的exiftool命令,可以进一步简化为:

exiftool -all= -overwrite_original_in_place image_filename.jpg

就是-all=通过将所有元数据字段设置为等于零的值来擦除元数据。-overwrite_original_in_place将覆盖实际图像。 它不会重新处理图像,而是读取文件、对元数据进行操作并将其写回系统。 如果没有该标志,exiftool则会复制原始文件并附加扩展名_original; 因此在这种情况下它将是image_filename.jpg_original。 最后一个参数只是您要操作的文件名。

答案3

exiv2工具(可使用 homebrew 安装)提供了一种快速简单的方法来从一个或多个文件中删除 EXIF 信息,例如:

exiv2 rm myfile1.jpg myfile1.jpg  

答案4

实际上 nconvert 从 jpg 中剥离了更多内容

http://www.xnview.com/en/nconvert/#downloads

nconvert.exe -rmeta -rexifthumb -o small.jpg big.jpg

相关内容