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

cwd*_*cwd 24 exif images macos

我知道有几个 Windows 程序可以做到这一点,Photoshop 有一个“保存为 Web”选项可以做到这一点,但我想要一个命令行或批处理选项。有什么想法吗?

Ell*_*esa 41

看看Imagemagick。它的-strip选项清除任何个人资料和评论的图像。

convert orig.jpg -strip result.jpg
Run Code Online (Sandbox Code Playgroud)

或者

mogrify -strip orig.jpg
Run Code Online (Sandbox Code Playgroud)

这是有关使用 Imagemagick 处理照片的更多信息

  • @ user200507 引用 OP,“我想要一个命令行选项,或者一个批处理选项。” 我认为 Imagemagick 是这方面的佼佼者。 (3认同)

Gia*_*968 8

我使用 macOS — 目前是 11.1 (Big Sur) — 我喜欢使用ExifTool进行这样的批处理元数据操作。从 Mac OS X 10.6 开始,甚至在不同风格的 Linux(如 Ubuntu)上都使用过它,并且效果很好。

就批量脚本而言,我使用了这个非常简单的 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
Run Code Online (Sandbox Code Playgroud)

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

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

exiftool -all= -overwrite_original_in_place image_filename.jpg
Run Code Online (Sandbox Code Playgroud)

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

  • `exiftool -all=` 将删除 ICC 颜色配置文件,这现在比以前更成问题,因为某些 iPhone 使用 P3 配置文件,而默认值(对于没有配置文件的图像)仍然是 sRGB。我推荐使用“exiftool -exif:all= -iptc:all= -time:all=”。 (3认同)

Pie*_*erz 5

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

exiv2 rm myfile1.jpg myfile1.jpg  
Run Code Online (Sandbox Code Playgroud)