Как я могу изменить размер изображений во вложенных папках с этими условиями?

Используя 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
1
13.03.2018, 13:35
2 ответа

Здесь вы найдете: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», позволит повторить это для одной или нескольких папок.

0
28.01.2020, 00:38

Я изменил код, предоставленный 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
1
28.01.2020, 00:38

Теги

Похожие вопросы