如何将 ICNS 转换为 PNG 同时删除多余的透明区域?

如何将 ICNS 转换为 PNG 同时删除多余的透明区域?

我有大约 200 多个 .icns 文件,我想将其转换为 png 以便在其他地方使用。

但是,.icns 文件是 1024x1024 的区域,实际图标周围有一个相当大的透明区域。在预览中打开时,我可以看到实际图标的近似大小为 826x826。

ICNS 图标与实际大小

如果我将其中一个 .icns 文件转换为 png 并按原样使用它,由于这个额外的透明区域,该图标在其他图标旁边会显得较小:

在此处输入图片描述

有没有办法轻松地从所有这些 .icns 文件中取出实际图标?最坏的情况是,我可以在 Photoshop 中手动裁剪每一个,但这可能很繁琐(并且不是 100% 准确),所以我希望有更好/自动化的方法。

谢谢!

答案1

(A)使用内部实用程序“sips”,意思是“可编写脚本的图像处理系统”......
这对于您的情况来说可能足够,也可能不够。

(B)使用图像魔术师,这将起作用完美适合您的情况。
需要考虑的主要参数是:
(1)庄稼:获取感兴趣的中心区域
或(2)刮胡子: 删除边框
使用这个,你可以用单身的命令 !

答案2

(A)这是我使用自动化程序的解决方案:

for theFilePath in "$@"; do
sips --cropOffset 1 1 -c 925 925 -o "${theFilePath%%.*}.png" "$theFilePath"
sips -r 180 -o "${theFilePath%%.*}.png" "$theFilePath"
sips --cropOffset 1 1 -c 826 826 -o "${theFilePath%%.*}.png" "$theFilePath"
sips -r 180 -o "${theFilePath%%.*}.png" "$theFilePath"
done

相关内容