使用Automator中的bash调整图像大小并保留图像比例

时间:2013-06-14 09:33:36

标签: macos bash automator sips

我正在尝试编写一个自动取款器应用程序,该应用程序将获取图像文件并将其调整到指定的宽度,但保持原始图像文件的高度/宽度比。

我一直试图在bash中使用sips但是我不确定我哪里出错了。我在谷歌上找不到任何参考BASH或啜饮的东西。

我正在尝试拍摄传递图像的高度和宽度,找出比例,然后使用目标宽度和目标高度调整图像大小(根据目标宽度和比率计算)

这是我当前的shell脚本,我将图像传递为Pass input: as arguments.

 height=`sips --getProperty pixelHeight $@`
 width=`sips --getProperty pixelWidth $@`
 ratio=height/width
 targetWidth=262
 targetHeight=targetWidth*ratio

 sips --resampleHeightWidth targetHeight targetWidth $@

我甚至不确定这是否是正确的方法,所以任何建议都会有所帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用--resampleWidth-Z

sips --resampleWidth 262 "$@" # make smaller or larger so that the width is 262 px
sips -Z 262 "$@" # make smaller or larger so that the longer sides are 262 px

如果您想阻止放大较小的图片,请参阅this answer或使用ImageMagick。我认为啜饮经常使图像看起来太模糊而没有额外的锐化,但ImageMagick也允许选择不同的重采样过滤器:

mogrify -filter lanczos2 -resize '262>' "$@"

mogrifyconvert的一个版本,用于修改图片。 lanczos2(2-laed Lanczos)使图像略微不如lanczos(3-laed Lanczos,它在某些时候成为缩减的默认过滤器)。 262>调整大于262像素的图像大小,使其宽度为262像素。