Можно ли записать сжатый размер сжатых изображений? (С изображением)

Я хочу получить журнал каждого сжатого изображения, чтобы увидеть сохраненный размер (потому что есть некоторые изображения, которые после сжатия становятся больше!), Используя только терминал. Пример:

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;  

1 ответ

Решение

Да, но некоторые уточнения вашего вопроса могут быть необходимы. Это очень просто сделать с помощью сценария оболочки; например, с 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
Другие вопросы по тегам