Используя c-shell (точнее tcsh) из командной строки:
mymachine % alias showme "echo here it is"
mymachine % showme
here it is
или поместите его в файл .cshrc, затем исходный файл:
mymachine % source ~/.cshrc
mymachine % showme
here it is
mymachine % ssh garnet showme
here it is
Здесь вы найдете:https://askubuntu.com/questions/1164/how-to-easily-resize-images-via-command-lineнекоторые подробности о линейных инструментах команды -, предлагаемых ImageMagick.
Итак, чтобы выполнить работу над одним изображением, я бы:
используйте инструмент идентификации для чтения метаданных изображений, например:
$ идентифицируйте /tmp/p1.jpg /tmp/p1.jpg JPEG 1487x925 1487x925+0+0 8 -бит sRGB 314106B 0,000u 0 :00,000
интерпретировать выходные данные, чтобы извлечь размеры 1487x925
примените мои правила для создания команды преобразования.
Цикл, основанный на результатах команды «find», позволит повторить это для одной или нескольких папок.
Я изменил код, предоставленный jajo , и заставил его работать таким образом:
MIN_RES=1001
MAX_RES=2500
RES11=2501
RES12=3000
RES21=3001
RES22=10000
for i in *.jpg; do
YRES=$(identify -verbose $i|grep Geometry: |cut -d 'x' -f2 |sed 's|+.*||g')
if [ $YRES -gt $MIN_RES ] && [ $YRES -lt $MAX_RES ]; then
echo "Found: $i with y-res: $YRES";
# convert
convert -resize 70% $i $i;
elif [ $YRES -gt $RES11 ] && [ $YRES -lt $RES12 ]; then
echo "Found: $i with y-res: $YRES";
convert -resize 50% $i $i;
else [ $YRES -gt $RES21 ] && [ $YRES -lt $RES22 ]
echo "Found: $i with y-res: $YRES";
convert -resize 30% $i $i;
fi
done