Что делает инструмент
Сжатие JPG до точного размера в КБ — частая задача при загрузке документов в государственные системы и онлайн-формы. Госуслуги, ЕГЭ, страховые компании часто требуют файл «до 100 КБ». Этот инструмент быстро решает задачу: загружаете картинку, выбираете цель — получаете сжатый файл с превью «до/после».
Используется библиотека browser-image-compression — она работает через Canvas API в Web Worker, не нагружая UI и не отправляя файл на сервер. Полностью клиентская обработка.
Когда нужно 100 КБ
- Госуслуги. Большинство форм для загрузки фото / сканов имеют лимит 100-500 КБ. 100 КБ работает почти везде.
- ЕГЭ / ОГЭ (ФИПИ). Регистрация на ЕГЭ требует JPG до 100 КБ для фотографий 3×4 и сканов документов.
- Заявления в вузы. Большинство приёмных комиссий требуют PDF или JPG до 100-200 КБ.
- Страховые компании. Загрузка сканов полисов / фото повреждений автомобиля — лимит обычно 100-500 КБ на файл.
- Банковские формы. Подача документов в Сбер, Тинькофф, ВТБ через формы — лимит 200-500 КБ.
- Email-вложения. Mail.ru / Яндекс.Почта имеют лимит на письмо — мелкие фото удобнее.
Как работает алгоритм
JPEG-кодек имеет параметр quality от 0 до 100. Quality 100 — почти lossless (но всё же jpeg-артефакты), quality 1 — экстремальное сжатие с заметной деградацией. Для каждого изображения соотношение «quality vs size» индивидуальное.
Бинарный поиск находит оптимальный quality за 5-7 итераций:
- Сжимаем с quality=80 → размер X.
- Если X слишком большой → пробуем 50.
- Если X слишком маленький → пробуем 90.
- Сужаем диапазон, пока не попадём в ±5% от цели.
В библиотеке browser-image-compression этот алгоритм встроен и оптимизирован — на каждой итерации canvas re-encode. На современном устройстве сжатие занимает 0.5-2 секунды.
Советы и лимиты
- Если результат не помещается в цель. Часто это значит исходное разрешение слишком высокое для такого маленького размера. Решение: уменьшить разрешение через «Изменить размер фото» (например, до 1500×1500), потом сжать.
- Удалить EXIF перед сжатием. EXIF (геолокация, модель камеры) может занимать 10-30 КБ. На очень маленьких файлах это критично. Используйте «Удалить EXIF» сначала.
- Чёрно-белые сканы — отдельный случай. Для текстовых документов JPEG не оптимален — лучше PNG с palette или PDF c MRC compression. JPG подойдёт но с заметными артефактами на буквах.
- Загрузка PNG → выход JPG. Прозрачность теряется (станет белой). Для сохранения прозрачности используйте PNG-сжатие через «Сжать PNG без потери качества».
- browser-image-compression — JS image compression library. Donald W. Tomlinson. github.com/Donaldcwl/browser-image-compression. 2024.
- JPEG specification (ISO/IEC 10918-1:1994). ISO/IEC. iso.org. 1994.
- Госуслуги — требования к загружаемым файлам. Минцифры РФ. gosuslugi.ru. 2026.
