Зменшення розміру зображень (стиснення без значної втрати якості) можна виконати за допомогою командного рядка Linux. Найпоширеніші інструменти — це ImageMagick (універсальний), jpegoptim (для JPEG), optipng (для PNG) та pngcrush (для PNG). Вони працюють без GUI і ефективно зменшують розмір файлів.
Крок 1: Встановлення інструментів
Встановіть пакети залежно від дистрибутива (наприклад, Ubuntu/Debian):
sudo apt update
sudo apt install imagemagick jpegoptim optipng pngcrushДля Fedora/RHEL:
sudo dnf install ImageMagick jpegoptim optipng pngcrushДля Arch:
sudo pacman -S imagemagick jpegoptim optipng pngcrushКрок 2: Основні команди для стиснення
Ось приклади для різних форматів. Замініть image.jpg на шлях до вашого файлу. Команди створюють нові файли (щоб не перезаписувати оригінали); для перезапису додайте -o або -overwrite.
| Формат | Інструмент | Команда | Опис | Очікуване зменшення | 
|---|---|---|---|---|
| JPEG | jpegoptim | jpegoptim --max=80 image.jpg | Стискає з якістю 80% (баланс розмір/якість). --strip-allвидаляє метадані. | 20–50% | 
| JPEG | ImageMagick (convert) | convert image.jpg -quality 80 optimized.jpg | Змінює якість; додайте -stripдля видалення метаданих. | 30–60% | 
| PNG | optipng | optipng -o7 image.png | Оптимізація рівня 7 (максимум); без втрат. | 10–40% | 
| PNG | pngcrush | pngcrush -rem alla -reduce -brute image.png | Брутфорс-оптимізація; -rem allaвидаляє метадані. | 20–50% | 
| Універсальний (JPEG/PNG/GIF) | ImageMagick (mogrify) | mogrify -quality 80 -strip *.jpg | Обробляє всі JPEG у папці; mogrifyперезаписує файли (обережно!). | Залежить від формату | 
- Пояснення параметрів:
- --max=80або- -quality 80: Якість 80% (від 0 до 100; нижче — менший розмір, але гірша якість).
- -o7: Рівень оптимізації (1–7; вищий — повільніший, але кращий).
- -strip: Видаляє EXIF, коментарі тощо, що заощаджує 5–20% розміру.
Крок 3: Обробка кількох файлів
- Усі JPEG у папці: jpegoptim --batch --max=80 *.jpg
- Усі PNG: optipng -o7 *.png
- Рекурсивно (включаючи підпапки): find . -name "*.jpg" -exec jpegoptim --max=80 {} \;
Крок 4: Перевірка результату
ls -lh *.jpg  # Показує розмір файлів у людському форматіПриклад: Оригінал 2MB → після стиснення 800KB.
Поради
- Без втрат: Для JPEG використовуйте jpegoptimз--strip-only(тільки метадані). Для PNG —optipngабоpngcrushзавжди без втрат.
- Масштабування: Якщо потрібно зменшити роздільну здатність (наприклад, вдвічі): convert image.jpg -resize 50% -quality 80 thumb.jpg.
- Обмеження: ImageMagick може бути повільним для великих файлів; jpegoptim швидший для JPEG.
- Якщо файли в ZIP/RAR: Розпакуйте спочатку, стисніть зображення, запакуйте заново з zip -9 archive.zip.
Ці методи працюють на будь-якій сучасній Linux (включно з 2025 роком).
Скрипт для оптимізації зображень у каталогах
Ось простий скрипт на Bash, який читає список каталогів з файлу (наприклад, directories.txt), знаходить у них файли зображень (JPEG, PNG, GIF) і оптимізує їх за допомогою інструментів jpegoptim, optipng та convert з ImageMagick. Скрипт створює резервні копії оригіналів у підпапці backup кожного каталогу, щоб уникнути втрат.
Передумови
- Встановіть інструменти: sudo apt install jpegoptim optipng imagemagick(для Ubuntu).
- Створіть файл directories.txtз переліком шляхів до каталогів, по одному на рядок (наприклад,/path/to/dir1\n/path/to/dir2).
- Запустіть скрипт: ./optimize_images.sh directories.txt(зробіть його виконуваним:chmod +x optimize_images.sh).
Скрипт: optimize_images.sh
#!/bin/bash
# Перевірка аргументів
if [ $# -ne 1 ]; then
    echo "Використання: $0 <файл_зі_списком_каталогів>"
    exit 1
fi
LIST_FILE="$1"
# Перевірка існування файлу списку
if [ ! -f "$LIST_FILE" ]; then
    echo "Файл $LIST_FILE не існує!"
    exit 1
fi
# Функція для оптимізації зображення
optimize_image() {
    local file="$1"
    local ext="${file##*.}"
    local backup_dir="$(dirname "$file")/backup"
    mkdir -p "$backup_dir"
    cp "$file" "$backup_dir/"  # Резервна копія
    case "$ext" in
        jpg|jpeg|JPG|JPEG)
            jpegoptim --max=80 --strip-all "$file"
            ;;
        png|PNG)
            optipng -o7 -strip all "$file"
            ;;
        gif|GIF)
            convert "$file" -strip -quality 80 "$file"
            ;;
        *)
            echo "Непідтримуваний формат: $file"
            ;;
    esac
}
# Читання списку каталогів і обробка
while IFS= read -r dir; do
    if [ -d "$dir" ]; then
        echo "Обробка каталогу: $dir"
        find "$dir" -type f \( -name "*.jpg" -o -name "*.jpeg" -o -name "*.png" -o -name "*.gif" \) | while read -r image; do
            optimize_image "$image"
            echo "Оптимізовано: $image"
        done
    else
        echo "Каталог $dir не існує!"
    fi
done < "$LIST_FILE"
echo "Оптимізація завершена!"Як це працює
- Читання списку: Скрипт читає файл з шляхами до каталогів.
- Пошук зображень: Використовує findдля пошуку файлів з розширеннями .jpg, .jpeg, .png, .gif (рекурсивно).
- Оптимізація:
- JPEG: Зменшує до 80% якості, видаляє метадані.
- PNG: Безвтратна оптимізація максимального рівня.
- GIF: Зменшує якість до 80% за допомогою ImageMagick.
- Резервні копії: Копіює оригінали в backupпідпапку.
- Логи: Виводить прогрес у консоль.
Приклад використання
- Файл directories.txt:
  /home/user/images/dir1
  /home/user/images/dir2- Запуск: ./optimize_images.sh directories.txt
Mikrotik Packet sniffer Налаштування хоста для отримання трафіку. /tool snifferset filter-interface=eth1 streaming-enabled=yes streaming-server=192.168.226.250:25010 При необхідності можна налаштувати фільтри трафіку Для отримання трафіку на Linux можна . . .
Встановлюємо англійську розкладку клавіатури (пізніше додамо інші). Коли дійдемо до моменту підключення до Wi-Fi, натискаємо Shift + F11 Вводимо в командному рядку (cmd): oobe\bypassnro Перезавантажуємося . . .
