我有数百种不同大小的jpg(例如2304px x 2323px)。
在gimp中,我可以使用批量过滤器将这些更改为相对或绝对的特定大小。但是对于某些配置,我必须手动执行以下操作,这对于所有图像都需要永远:
是否有可用于自动执行这些步骤的脚本?
答案 0 :(得分:0)
除非您找到使用gimp的方法,否则您可能需要查看ImageMagick: mogrify 工具允许修改和调整图像大小。
注意:除非您使用stdin
/ stdout
,否则mogrify将覆盖您的文件。你可能想要一个像这样的脚本:
#!/bin/sh
for image in `ls /your/path/*jpg`; do
mogrify -resize ... - < "$image" > "${image%%.png}-s.jpg"
done
答案 1 :(得分:0)
ImageMagick中有类似的东西。它并不像看起来那么难,因为大多数都是评论。尝试使用 COPY 文件 - 它会执行当前目录中的所有JPEG。
#!/bin/bash
shopt -s nullglob
shopt -s nocaseglob
for f in *.jpg; do
echo Processing $f...
# Get width and height
read w h < <(convert "$f" -format "%w %h" info: )
echo Width: $w, Height: $h
# Determine new name, by stripping extension and adding "s"
new=${f%.*}
new="${new}-s.jpg"
echo New name: $new
# Determine lesser of width and height
if [ $w -lt $h ]; then
geom="500x"
else
geom="x500"
fi
convert "$f" -resize $geom -gravity center -crop 500x500+0+0! "$new"
done