macOS 下使用自带的图片处理工具sips的完整教程

macOS 自带了一个强大的命令行工具——sips (Scriptable Image Processing System),它是一个全面的图像处理工具。除了图像的格式转换和大小调整外,sips 还支持应用 ColorSync 配置文件等多种操作。作为命令行工具,它不仅适合简单的图像处理,还可以编写脚本用于批量操作,从而提高工作效率。

本文将详细介绍如何使用 sips 进行常见的图像处理任务,结合多个实际示例。

1. sips 的基础使用

1.1 查看图像信息

使用 sips 可以轻松获取图像的元数据,例如宽度、高度、分辨率等。

sips -g all /path/to/image.jpg

这条命令会输出 image.jpg 文件的所有元数据信息,包括宽度、高度、颜色空间、分辨率等。

如果只需要特定的图像信息,例如宽度和高度,可以通过以下命令实现:

sips -g pixelWidth -g pixelHeight /path/to/image.jpg

这样可以分别获取 image.jpg 的像素宽度和高度。

1.2 调整图像大小

调整图像大小可以使用 -z 参数,后面跟随目标高度和宽度。比如,将图片裁剪为 1024x1024 像素:

sips -z 1024 1024 /path/to/image.jpg

这条命令会将 image.jpg 的尺寸调整为 1024x1024。

1.3 改变图像格式

sips 可以轻松转换图像格式,例如将 HEIC 格式转换为 JPEG 格式:

sips -s format jpeg example.HEIC --out example.jpg

这个命令会将 example.HEIC 转换为 example.jpg

1.4 嵌入 ColorSync 配置文件

-e 参数可以用来嵌入 ColorSync 配置文件:

sips -e /path/to/profile.icc /path/to/image.jpg

这个命令将指定的 profile.icc 文件嵌入到 image.jpg 中。

1.5 设置图像分辨率

通过以下命令可以设置图像的 DPI 分辨率:

sips -s dpiHeight 300 -s dpiWidth 300 example.jpg

这条命令将 example.jpg 的分辨率设置为 300 DPI。

1.6 旋转图像

使用 -r 参数可以对图像进行旋转操作:

sips -r 90 example.jpg

这条命令会将 example.jpg 顺时针旋转 90 度。

1.7 翻转图像

可以使用 -f 参数来翻转图像,例如水平翻转:

sips -f horizontal example.jpg

这条命令将 example.jpg 进行水平翻转。

2. 批量处理与脚本自动化

sips 的强大之处在于可以结合脚本来批量处理文件,极大地提高工作效率。下面是一些常见的批处理脚本示例。

2.1 将文件夹中的 JPG 文件批量转换为 PNG

下面的脚本会将当前文件夹中的所有 .webp 文件转换为 .png 格式:

for fi in *.webp; do sips -s format png $fi --out $fi.png; done

2.2 按比例缩放图像

以下脚本可以将当前目录下的所有 .png 图片按比例缩小一半:

#!/bin/bash

if [ $1 ]
then
   echo Processing file $1;
else
   find . -name "*.png" -print0 | while IFS= read -r -d '' file; do
       echo Processing file "$file";
       sips -Z $(($(sips -g pixelWidth "$file" | cut -s -d ':' -f 2 | cut -c 2-) / 2)) "$file" --out "$file" &> /dev/null
   done
fi

常用的命令中文参考

用法:

sips [图像功能] 图像文件 ...
sips [配置文件功能] 配置文件 ...

配置文件查询功能:

-g, --getProperty key           获取配置文件的指定属性
-X, --extractTag tag tagFile    提取指定标签并保存为文件
    --verify                    验证配置文件的完整性
-1, --oneLine                   将输出简化为一行

图像查询功能:

-g, --getProperty key           获取图像的指定属性
-x, --extractProfile profile    提取嵌入的配置文件
-1, --oneLine                   将输出简化为一行

配置文件修改功能:

-s, --setProperty key value     设置配置文件的指定属性
-d, --deleteProperty key        删除配置文件的指定属性
    --deleteTag tag             删除指定的标签
    --copyTag srcTag dstTag     复制标签
    --loadTag tag tagFile       加载指定的标签文件
    --repair                    修复配置文件
-o, --out file-or-directory     输出文件或目录

图像修改功能:

-s, --setProperty key value     设置图像的指定属性
-d, --deleteProperty key        删除图像的指定属性
-e, --embedProfile profile      嵌入配置文件到图像
-E, --embedProfileIfNone profile  如果图像没有配置文件,则嵌入
-m, --matchTo profile           将图像与指定配置文件匹配
-M, --matchToWithIntent profile intent  用指定意图匹配配置文件
    --deleteColorManagementProperties   删除颜色管理属性
-r, --rotate degreesCW          将图像按顺时针旋转指定角度
-f, --flip horizontal|vertical  翻转图像,水平或垂直
-c, --cropToHeightWidth pixelsH pixelsW   裁剪图像到指定高度和宽度
    --cropOffset offsetY offsetH  裁剪时应用的偏移量
-p, --padToHeightWidth pixelsH pixelsW   将图像填充到指定高度和宽度
    --padColor hexcolor          填充背景颜色,指定为十六进制
-z, --resampleHeightWidth pixelsH pixelsW   重采样图像到指定高度和宽度
    --resampleWidth pixelsW      重采样图像的宽度
    --resampleHeight pixelsH     重采样图像的高度
-Z, --resampleHeightWidthMax pixelsWH   重采样图像到最大高度或宽度
-i, --addIcon                   为图像文件添加图标
    --optimizeColorForSharing    优化颜色以便于分享
-o, --out file-or-directory      输出文件或目录
-j, --js file                    运行指定的 JavaScript 文件

其他功能:

    --debug           启用调试输出
-h, --help            显示帮助信息
-H, --helpProperties  显示属性的帮助信息
    --man             生成手册页
-v, --version         显示版本信息
    --formats         显示支持的读/写格式

标签: macOS

相关文章

推荐几款在macOS下可以运行本地AI模型的软件

至于为嘛要在本地跑模型,我就不分析原因了,在macOS 14(Sonoma)上,有许多支持本地运行AI模型的软件,尤其是为了方便用户在本地运行LLM(大语言模型)和其他机器学习模型。以下是一些常...

macOS下编译UPX4.2.4

因为brew仓库里的upx太久没有更新了,所以决定手工编译并替换掉原先brew中的upx在 macOS 上使用 Homebrew 安装的工具可能会位于 /opt/homebrew 目录下,而不是...

图片Base64编码

CSR生成

图片无损放大

图片占位符

Excel拆分文件