使用命令行转换图像文件格式 & sips
将图像转换为新的文件格式非常容易,这要归功于直接内置于 OS X(和大多数 Linux 发行版)中的各种工具。虽然最简单的方法是使用预览来转换图像,但还有一个命令行选项使用我们之前讨论过的相同 sips 工具从命令行执行批量调整大小。使用sips,您可以将单张图片转换为新的图片格式,甚至可以进行批量图片转换。
从命令行进行简单的图像转换
要用sips转换单个图像,请使用以下命令字符串语法:
sips -s 格式--out
例如,在要转换为PNG 的名为“test.jpg”的文件上,sips 语法为:
sips -s格式png test.jpg --out test.png
使用sips批量图像转换
Converting a group of images is a little trickier, and using simple wildcards like when resizing with sips doesn't completely same。您会发现使用像这样的通用通配符也不会重命名文件,因此我们将使用非常简单的 shell 脚本来代替以下命令语法:
for i in ;做 sips -s 格式 $i --out /$i.;done
使用它,我们将在当前目录的新子文件夹中将.jpeg 文件的文件夹转换为png 文件,称为“Converted”:
for i in .jpeg;做 sips -s format png $i --out Converted/$i.png;done
运行该命令可能会导致新目录中的所有JPEG图像都转换为PNG格式。
一个可能令人讨厌的陷阱是生成的文件名中也会包含原始文件类型,这意味着您最终会得到标题为“test.jpeg.png”的文件。文件扩展名保持正确,这只是一个命名问题。您可以通过首先重命名它们然后在之后使用类似的 bash 脚本、使用正则表达式或使用 mv 手动重命名来添加正确的文件扩展名来解决这个问题。
使用某些文件格式运行sips时,您可能会遇到关于exif数据的'lingpng警告'错误,这些错误大部分可以忽略,图像转换仍然会发生。
Thanks to Thom for the batch conversion idea