Skip to content

SANTIK-Genius/ImageCompressor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🖼️ ImageCompressor

thum

Пакетное сжатие изображений с сохранением качества

Простой и эффективный инструмент для пакетного сжатия PNG/JPG изображений с возможностью настройки качества и ограничения размера файлов.

✨ Возможности

  • 📁 Пакетная обработка - одновременное сжатие множества изображений
  • 🎯 Умное сжатие - автоматическая оптимизация качества
  • 📏 Ограничение размера - настройка максимального размера файла (например, до 1 МБ)
  • 🔄 Изменение размеров - опциональное масштабирование изображений
  • 📊 Подробная статистика - отчет об экономии места
  • 🎨 Поддержка форматов: JPG, JPEG, PNG, BMP, TIFF, WebP
  • 💾 Сохранение структуры - оригинальные названия и метаданные

🚀 Быстрый старт

Установка

  1. Клонируйте репозиторий:
git clone <repository-url>
cd image_compressor
  1. Установите зависимости:
pip install -r requirements.txt
  1. Подготовьте файлы:

Поместите изображения в папку input/

При необходимости измените настройки в config.json

Использование

Базовое использование (с конфигурацией по умолчанию):

python compress.py

С параметрами командной строки:

python compress.py --input ./photos --output ./compressed --max-size 0.5 --quality 80

С изменением размеров:

python compress.py --resize --width 1200 --height 800

⚙️ Конфигурация

Отредактируйте config.json для настройки параметров:

{
    "input_folder": "input",
    "output_folder": "output", 
    "max_file_size_mb": 1,
    "quality_jpeg": 85,
    "quality_png": 85,
    "resize_enabled": false,
    "max_width": 1920,
    "max_height": 1080,
    "preserve_metadata": true
}

⚙️ Параметры конфигурации

Параметр Тип 🏷️ По умолчанию 📝 Описание
input_folder string "input" 📁 Папка с исходными изображениями
output_folder string "output" 📂 Папка для сжатых изображений
max_file_size_mb number 1 📏 Максимальный размер файла в МБ
quality_jpeg number 85 🎨 Качество JPEG сжатия (0-100)
quality_png number 85 🖼️ Качество PNG сжатия (0-100)
resize_enabled boolean false 🔄 Включить изменение размеров
max_width number 1920 📐 Максимальная ширина изображения
max_height number 1080 📏 Максимальная высота изображения
preserve_metadata boolean true 💾 Сохранять метаданные

🎯 Рекомендации по качеству

Настройки качества сжатия

Качество Диапазон Рекомендация Экономия места
🟢 Высокое 80-90% Минимальная потеря качества, подходит для фотографий и важных изображений 20-40%
🟡 Среднее 70-80% Оптимальный баланс между качеством и размером, для веб-сайтов 40-60%
🟠 Экономное 60-70% Заметная потеря качества, но значительное уменьшение размера 60-75%
🔴 Агрессивное 40-60% Сильная потеря качества, только для превью и миниатюр 75-85%

🖥️ Аргументы командной строки

Аргумент Сокращение Тип Описание
--input -i string Входная папка с изображениями
--output -o string Выходная папка для сжатых изображений
--max-size -m number Максимальный размер файла в МБ
--quality -q number Качество сжатия (0-100)
--resize flag Включить изменение размера
--width number Максимальная ширина
--height number Максимальная высота
--config -c string Путь к конфигурационному файлу

💻 Примеры использования

# Базовое использование
python compress.py --input ./photos --output ./compressed --max-size 0.5 --quality 80

# Сокращенная запись
python compress.py -i ./images -o ./optimized -m 1 -q 85 --resize --width 1200

# С кастомным конфигом
python compress.py --config my_config.json

# Только изменение размера
python compress.py --resize --width 800 --height 600 --quality 75

# Максимальное сжатие
python compress.py -i ./input -o ./output -m 0.1 -q 60 --resize --width 400

About

пакетное сжатие изображений

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages