sips 显示无法呈现目标图像

sips shows Unable to render destination image

我曾使用 sips 按照以下命令调整 PNG 图片的大小。

sips -z 768 1024 image.png --out image-resize.png

效果很好。但是今天我收到一条错误消息,如下所示

<CGColor 0x7ffb72e05c40> [<CGColorSpace 0x7ffb72e04e70> (kCGColorSpaceDeviceRGB)] ( 0 0 0 1 )
Error: Unable to render destination image

如果有人能提供帮助,我们将不胜感激。

sips -s format jpeg image.png --out image.jpg
sips -z 768 1024 image.jpg --out image-resize.jpg

将颜色配置文件值从 RGB 16 位更改为 8 位 sRGB 解决了这个问题。

这可以通过终端中的一个命令完成:

find . -type f -name '*.png' -print0 | while IFS= read -r -d '' file; do sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' "$file" --out "$file"; done

然后可以通过 sips 调整图像大小。对于批量调整大小,我使用此命令:

mdfind -0 -onlyin . "kMDItemPixelHeight > 600 || kMDItemPixelWidth > 600" | xargs -0 sips -Z 600

最后,此命令用于减小图像文件的大小:

find . -name '*.png' -exec pngquant --skip-if-larger --ext .png --force {} \; -exec xattr -c {} \;