Зменшення мовлення зображення localhost

127.0.0.1

зображення

Тут я знайшов сценарій для imagemagick, який зменшує зображення за розміром, доки воно не отримає певний розмір у КБ. Однак у більшості випадків мені не потрібні будь-які налаштування розміру, просто «зменшення ваги» із зображеннями, які вже були скориговані за розміром.

Скрипт для зміни розміру одного файлу без маніпулювання розмірами може виглядати так:

#!/bin/bash
якщо [$ # -ne 2]
тоді
echo -e "\ nususage: $ 0 \ n"
Вхід
fi
IMAGE_FORMAT = jpg
FILE_SIZE_LIMIT = $ 1
IMAGE_IN = $ 2
BASENAME = `echo $ | вирізати -d ‘.‘ -f-1 `
IMAGE_OUT = $. Менший.jpg
FILE_SIZE = `ls -sk $ IMAGE_IN | вирізати -d ‘‚ -f1`
якщо [$ FILE_SIZE -ge $ FILE_SIZE_LIMIT]
тоді
echo "зменшення $ IMAGE_IN з: $ FILE_SIZE КБ до $ 1 КБ"
SIZE = `визначити $ IMAGE_IN | вирізати -d ‘‚ -f7`
S = `echo $ SIZE`
луна "РОЗМІР: $"
QUAL = 100
тоді як [$ FILE_SIZE -ge $ FILE_SIZE_LIMIT]
робити
нехай QUAL = QUAL-1
echo "Поточна якість: $"
перетворити $ IMAGE_IN -якість $ $ IMAGE_OUT
FILE_SIZE = `ls -sk $ IMAGE_OUT | вирізати -d ‘‚ -f1`
echo "Поточний розмір файлу: $ FILE_SIZE КБ"
зроблено
mv $ IMAGE_OUT $. $. $
fi

Вставте наведений фрагмент коду в текстовий файл для власних експериментів та налаштувань (назвемо його filesize.sh) і зробіть його виконуваним.

потім робить bild.jpg 100 кб і зберігає результат у файлі

Часто доводиться редагувати цілі папки, що також можна зробити за допомогою сценарію вище:

знайти/шлях/до/папки -iname "* .jpg" -exec filesize.sh 100 <> \;

Зазвичай він застосовується занадто густо, тому що без сценарію це можна зробити так:

для i у `ls * .jpg`; зробити перетворення -якість 80 $ i conv_ $ i; зроблено

Тоді подивіться на результат

і пише, якщо це не підходить, поставте нижчу цифру після -quality після того, як зробили перший прохід

видалив. Поки не підійде. Швидко і брудно.

Після того, як рядки були введені один раз, вони потрапляють в історію Bash і їх можна швидко викликати за допомогою клавіш курсору вгору або шукати та знаходити через кілька днів за допомогою [Ctrl] [R].