我正在尝试编写一个自动取款器应用程序,该应用程序将获取图像文件并将其调整到指定的宽度,但保持原始图像文件的高度/宽度比。
我一直试图在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 $@
我甚至不确定这是否是正确的方法,所以任何建议都会有所帮助。
答案 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>' "$@"
mogrify
是convert
的一个版本,用于修改图片。 lanczos2
(2-laed Lanczos)使图像略微不如lanczos
(3-laed Lanczos,它在某些时候成为缩减的默认过滤器)。 262>
调整大于262像素的图像大小,使其宽度为262像素。