我有各种高度的照片,需要将它们调整到最接近的高度模N.
示例:
原始档案:
1200x956
我需要h%N = 0 with N = 20
。然后预期的输出是:
1200x960
因为960%20 = 0。
谢谢。
答案 0 :(得分:0)
这可以通过一个简单的bash脚本来解决。例如,采用以下逻辑流程。
files="first_image.jpg second_image.jpg"
for file in $files
do
# Capture original width
let width=$(identify -format '%w' $file)
# Identify offset
let offset=$(expr $width % 20)
# Repeat until offset is 0
while [ $offset -ne 0 ]
do
# Increment/Decrement width as needed
if [ $offset -lt 10 ]
then
width=$(($width-1))
else
width=$(($width+1))
fi
# Update offset
offset=$(expr $width % 20)
done
# Overwrite image with newly found width
mogrify -resize ${width}x $file
done
原始图片,已调整宽度值。expr $width % 20
修改强>
上面的例子可以简化。甚至可能会计算files="first_image.jpg second_image.jpg"
delta() {
mod=$(expr $1 % 20)
[[ $mod -lt 10 ]] && echo $(expr $mod \* -1) || echo $(expr 20 - $mod)
}
for file in $files
do
let width=$(identify -format %w $file)
let height=$(identify -format %h $file)
let new_width=$(($width + $(delta $width)))
let new_height=$(($height + $(delta $height)))
mogrify -resize "${new_width}x${new_height}" $file
done
的评估。
{{1}}