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

时间:2017-01-13 21:37:28

标签: macos

我正在使用预览(OS X El Capitan附带)功能将文件格式TIFF格式转换为JPG。我预计导出过程将包含原始注释,但不会发生(它也适用于标记字段)。

Selecting the file from Preview for exporting it into JPG

生成的JPG文件没有评论

Comparation of TIFF and JPG files, there is no comment on JPG file

压缩和更改图片格式有效,但不会导出评论或标签等META INFO。

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

2 个答案:

答案 0 :(得分:1)

更新了答案

根据您的意见,我认为最好的方法是尝试识别如何/在哪里为每个平台存储评论(Windows vs macOS),然后确定您使用哪种方法想要继续前进。

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

我建议使用exiftoolhomebrew可以使用brew install exiftool 安装,使用:

exiftool -a image.jpg

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

image.jpg

会在exiftool -comment image.jpg # extract JPEG comment exiftool -EXIF:UserComment image.jpg # extract EXIF UserComment 中显示所有代码。您的意见可能在:

  • 评论 - 这是JPEG评论,或
  • EXIF:UserComment - 这是EXIF评论

如果您在JPEG或EXIF部分中找到您的评论,则只能通过以下内容提取评论:

-s3

添加选项exiftool -comment="FUNKY JPEG COMMENT" image.jpg # set JPEG comment exiftool -EXIF:UserComment="FUNKY EXIF USER COMMENT" image.jpg # set EXIF UserComment 以禁止上述字段名称以节省必须解析它们。

同样,您可以使用以下内容设置评论:

exiftool -EXIF:UserComment -csv *.jpg

SourceFile,UserComment
a.jpg,FUNKY EXIF:UserComment
b.jpg,b FUNKY EXIF:UserComment

您还可以使用以下内容将EXIF用户评论提取到CSV

$HOME/macOSGetFinderComment "/Users/someone/soneFile.tif"

您还可以应用CSV中的评论。

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

cd NEW

原始答案

我建议你使用 ImageMagick 尝试以下内容。

首先,使用Finder或您熟悉的任何其他工具,将照片副本(包括整个目录结构)复制到我们无法破坏现有照片的新位置。所以,假设您复制(不要移动)整个TIF树到HOME目录中名为“NEW”的子目录。

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

mogrify

简易方法

如果所有TIF都在一个或两个目录中,请使用mogrify -format jpg *.tif

find NEW -name \*.tif -exec sh -c 'new="${1%.tif}.jpg"; convert "{}" "$new"' _ {} \;

更难的方法

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

sh

开始在“NEW”目录中查找名为“* .tif”的文件。当它找到一个时,它会启动一个新的shell(convert)并传递TIF的文件名。然后通过用“jpg”替换尾随的“tif”并调用 ImageMagick #!/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 进行转换来计算新文件名。

关于Finder / Spotlight评论,这里有一个小脚本来获取文件的Finder评论:

#!/bin/bash
# macOSSetFinderComment
# Pass an absolute path to the file!
file=$1
comm=$2
osascript<<EOF
    tell application "Finder" to set comment of item POSIX file "$file" to "$comm"
EOF

这里有一个设置Finder / Spotlight评论:

cd
chmod +x macOS*FinderComment

因此,我会将这两个脚本保存在您的HOME目录中,然后使用以下命令使它们可执行:

#!/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

然后将此文件保存在$ HOME / CopyComments:

下的HOME目录中
chmod +x $HOME/CopyComments

并使用以下命令使其可执行:

cd NEW
$HOME/CopyComments

并运行:

element

答案 1 :(得分:0)

我也在Apple社区发布了这个问题,这是VikingOSX提出的solution。这是一段很大的代码,所以最好从here或直接从提到的Apple Community Link下载。以下是原始帖子中描述的解决方案的说明:

  • 提示输入源文件夹和目标文件夹。
  • 从源文件夹到目标文件夹复制文件夹层次结构。 选择文件夹层次结构中的所有TIFF图像并将其转换为JPEG。 对于子文件夹及其文件,将原始Finder注释,颜色标记和标记名称传输到目标层次结构。
  • JPG文件的压缩级别为high,可在以下行中修改:mediumlowsave this_img as JPEG in outfile_name with compression level medium with icon

限制:源文件夹只能包含一个级别的子文件夹。忽略这一点会导致意外结果。

其他评论

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

<强>用法

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

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

<强>声明

在一个平台(例如Windows或Mac OS)中生成的注释和标签在其他平台中不可视化。在Windows中创建的标记在mac OS中被视为关键字(Comand+i用于可视化它们),但在Windows中生成的注释在mac OS中不可视化。这是一般的不兼容问题,适用于任何格式的照片(例如TIFF或JPG)。

编辑(用于解决评论的跨平台问题的更新解决方案)

从@MarkSetchell的想法中,我改编了原始脚本,至少解决了从macOS到Windows的跨平台问题,即在Windows平台上可以看到来自macOS的评论。想法是使用EXIF元数据。然后Applescript将调用shell脚本来调用exiftool

set uxFilepath to POSIX path of NewIMG 
do shell script "/usr/local/bin/exiftool  -overwrite_original -EXIF:UserComment=\"" & cmtstr & "\" " & uxFilepath

Windows将EXIF中的UserComment元数据作为常规文件注释进行处理。现在,对于TIF文件的相同评论将在JPG上,并且因为这些评论被复制(复制 - 粘贴)到EXIF元数据中,所以相同的信息将在Windows下可视化。如果Windows / Mac读取它,可以将相同的想法用于其他文件属性。

macOS中的EXIF元数据可以从命令行显示为@MarkSetchell,也可以从Finder:Command+o(启动预览应用程序),然后Command+i(启动检查器)。然后点击点击:&#34;更多信息&#34;,然后点击标签EXIF。

How visualize EXIF metadata from Finder

对于相反的过程,需要使用相反的脚本,即使用exiftool将EXIF注释复制到macOS注释中。我已经确认,在这种情况下,Windows评论将显示在标签下:XPComment。该脚本使用:UserComment,但它在两个方向上都使用XPComment作为标签。