Я хочу привести журнал в порядок каждого сжатого изображения для наблюдения сохраненного размера (потому что существует некоторое изображение, что после сжатия становятся больше!) использующий просто терминал. Исключая:
convert photo.jpg -quality 50% photo2.jpg
photo2.jpg | saved size: 100 kb
РЕДАКТИРОВАНИЕ 1:
Как я могу реализовать предложение @daemonburrito к коду, что я использовал для сжатия повторных изображений?
Вот:
for PHOTO in /home/bnnsou/Desktop/images/*
do
BASE=`basename $PHOTO`
convert "$PHOTO" -quality 40% "/home/bnnsou/Desktop/imagesCompressed/$BASE"
done;
Да, но некоторое разъяснение Вашего вопроса может быть необходимо. Очень просто сделать со сценарием оболочки; например, с Awk или Perl. Но если Ваш вопрос состоит в том, может ли он быть сделан без каких-либо других инструментов, затем я думаю, что ответ нет.
Сценарий очень легко записать, как бы то ни было. Вы не перечислили все свои требования, но это можно было назвать с теми же аргументами, как Вы передали convert
, и это могло просто проанализировать вывод ls -al
получить различие между несжатыми и сжатыми размерами.
Можно ли хотеть обновить вопрос путем выяснения, "Как я записал бы сценарий оболочки в...", если я предположил правильно о намерении вопроса.
ОБНОВИТЕ сценарий:
#!/usr/bin/env bash
# script to log before-and-after sizes for imagemagick compression
INPUT_FILENAME="$1"
OUTPUT_FILENAME="$4"
ORIGINAL_SIZE=$(wc -c "${INPUT_FILENAME}" | cut -d ' ' -f1)
convert "$@"
COMPRESSED_SIZE=$(wc -c "${OUTPUT_FILENAME}" | cut -d ' ' -f1)
echo "${OUTPUT_FILENAME} | saved size: $(expr $ORIGINAL_SIZE - $COMPRESSED_SIZE)"
Поместите это в названный сценарий, например, convert_with_logging
, сделайте это исполняемым файлом с chmod +x convert_with_logging
, и назовите его с теми же аргументами, как Вы звонили convert
; т.е.
./convert_with_logging photo.jpg -quality 50% photo2.jpg