Macos 如何将图像从TIFF转换为JPG,保留注释和标记

Macos 如何将图像从TIFF转换为JPG,保留注释和标记,macos,Macos,例如,我正在使用预览(OSX El Capitan附带的)功能将文件格式TIFF格式转换为JPG格式。我希望导出过程将包含原始注释,但它没有发生(它也适用于标记字段) 生成的JPG文件没有注释 压缩和更改图像格式可以工作,但不会导出注释或标记等元信息 关于如何包含该信息的任何建议或解决方法。我需要转换大约500张图像,因此手动复制/粘贴对我不起作用。更新的答案 根据您的评论,我认为最好的方法是尝试并确定每个平台(Windows与macOS)的评论存储方式/位置,然后决定今后使用哪种方法 ma

例如,我正在使用预览(OSX El Capitan附带的)功能将文件格式TIFF格式转换为JPG格式。我希望导出过程将包含原始注释,但它没有发生(它也适用于标记字段)

生成的JPG文件没有注释

压缩和更改图像格式可以工作,但不会导出注释或标记等元信息


关于如何包含该信息的任何建议或解决方法。我需要转换大约500张图像,因此手动复制/粘贴对我不起作用。

更新的答案

根据您的评论,我认为最好的方法是尝试并确定每个平台(Windows与macOS)的评论存储方式/位置,然后决定今后使用哪种方法

macOS Finder/Spotlight注释在Windows上不清晰,因此如果您想要Windows兼容性,则需要在JPEG或EXIF注释上进行标准化

我建议使用
exiftool
,您可以使用
homebrew
安装该工具,使用:

brew install exiftool
然后,我建议您尝试从文件中提取注释,以查看它们的存储方式/位置:

exiftool -a image.jpg
将在
image.jpg
中显示所有标记。您的评论可能在以下位置:

  • 注释-哪个是JPEG注释,或者
  • EXIF:UserComment-哪个是EXIF注释
如果您在JPEG或EXIF部分找到您的评论,您可以使用以下内容仅提取评论:

exiftool -comment image.jpg             # extract JPEG comment
exiftool -EXIF:UserComment image.jpg    # extract EXIF UserComment
exiftool -comment="FUNKY JPEG COMMENT" image.jpg                  # set JPEG comment
exiftool -EXIF:UserComment="FUNKY EXIF USER COMMENT" image.jpg    # set EXIF UserComment
添加选项
-s3
以抑制上面的字段名,从而避免解析它们

同样,您可以使用以下选项设置注释:

exiftool -comment image.jpg             # extract JPEG comment
exiftool -EXIF:UserComment image.jpg    # extract EXIF UserComment
exiftool -comment="FUNKY JPEG COMMENT" image.jpg                  # set JPEG comment
exiftool -EXIF:UserComment="FUNKY EXIF USER COMMENT" image.jpg    # set EXIF UserComment
您还可以通过以下方式将EXIF用户注释提取到CSV:

exiftool -EXIF:UserComment -csv *.jpg

SourceFile,UserComment
a.jpg,FUNKY EXIF:UserComment
b.jpg,b FUNKY EXIF:UserComment
您还可以应用CSV中的注释

您还应该能够使用我的主要答案中的脚本提取macOS/Spotlight/Finder注释:

$HOME/macOSGetFinderComment "/Users/someone/soneFile.tif"
原始答案

我建议您使用ImageMagick尝试以下操作

首先,使用Finder或您熟悉的任何其他工具,将您的照片(包括整个目录结构)复制到某个新位置,在那里我们不会损坏您现有的照片。因此,假设您将整个TIFs树复制(而不是移动)到主目录中名为“NEW”的子目录中

然后启动终端并将目录更改为“新建”:

简易方法

如果所有TIF都在一个或两个目录中,只需使用
mogrify

mogrify -format jpg *.tif
更难的方法

如果TIF文件位于多个目录中,则需要更加努力地工作。在端子内部复制并粘贴以下内容:

find NEW -name \*.tif -exec sh -c 'new="${1%.tif}.jpg"; convert "{}" "$new"' _ {} \;
开始在“NEW”目录中查找名为“*.tif”的文件。找到一个后,它将启动一个新的shell(
sh
),并将TIF的文件名传递给它。然后,它通过将尾部的“tif”替换为“jpg”来计算出新的文件名,并调用ImageMagick
convert
进行转换


关于Finder/Spotlight注释,下面是一个获取文件的Finder注释的小脚本:

#!/bin/bash
# macOSGetFinderComment
# Pass an absolute path to the file!
file=$1
osascript<<EOF
    tell application "Finder" to get comment of item POSIX file "$file"
EOF
然后将此文件保存在$HOME/CopyComments下的主目录中:

#!/bin/bash
shopt -s nullglob
for f in $(pwd)/*.tif; do
    comment=$($HOME/macOSGetFinderComment "$f")
    new="${f%.tif}.jpg"
    echo Setting comment of $new to $comment
    $HOME/macOSSetFinderComment "$new" "$comment"
done
并通过以下方式使其可执行:

cd
chmod +x macOS*FinderComment
chmod +x $HOME/CopyComments
并使用以下工具运行它:

cd NEW
$HOME/CopyComments

我也在苹果社区发布了这个问题,下面是VikingOSX提出的建议。这是一段很大的代码,所以最好从上面提到的苹果社区链接下载,或者直接从上面提到的苹果社区链接下载。以下是关于解决方案的描述,如原始帖子中所述:

  • 提示输入源文件夹和目标文件夹
  • 将文件夹层次结构从源文件夹复制到目标文件夹。 选择文件夹层次结构中的所有TIFF图像并将其转换为JPEG。 对于子文件夹及其文件,将原始查找器注释、颜色标记和标记名称传输到目标层次结构
  • JPG文件的压缩级别为
    ,可以在以下行中修改:
    中等
    将此img保存为带有图标的压缩级别中等的文件名中的JPEG
限制:源文件夹只能包含一级子文件夹。忽略这一点将导致意外结果

其他评论

  • 使用with timeout子句允许大量文件。AppleScript尚不支持Finder标记名,因此此脚本使用
    AppleScript/Objective-C
    获取并设置这些标记名。由于此扩展,该脚本现在需要AppleScript 2.4,并且必须在
    OS10.10
    或更高版本上运行
  • 由于存在
    AppleScript/Objective-C
    代码,如果不使用
    control+command+R
    键盘快捷键,脚本无法作为脚本/脚本包交互运行。脚本启动时会进行测试,并会发出相应的警告。最好将脚本另存为应用程序,以完全避免使用此键盘快捷键
用法

保存,然后将包含的文件复制并粘贴到脚本编辑器中(您可以在文件夹:Utilities中的名称:Script Editor下找到应用程序),以:application的格式编译并保存文件,然后双击该文件以运行脚本应用程序

我在Mac Air 2010和OS El Capitan下测试了该脚本,该文件夹包含884个大小为2.25GB的TIFF文件,将其转换为中等压缩级别的JPG文件大约需要18分钟。生成的文件将包含原始等效TIFF文件中的标记和注释

免责声明

在一个平台(例如Windows或mac OS)中生成的注释和标记在另一个平台中不可见。在Windows中创建的标记在mac OS中被视为关键字(
Comand+i
,用于可视化它们),但comm
set uxFilepath to POSIX path of NewIMG 
do shell script "/usr/local/bin/exiftool  -overwrite_original -EXIF:UserComment=\"" & cmtstr & "\" " & uxFilepath