← Вернуться в блог

Сжать фото паспорта и документов для онлайн-форм — приватно, в вашем браузере

Вы заполняете заявление на визу, форму банковской идентификации или страницу регистрации на новой работе. Форма требует скан вашего документа, фото паспорта или свежий счёт за ЖКУ. Вы фотографируете телефоном, или сканируете страницу, и жмёте «загрузить». Форма тут же возвращает: «Файл слишком большой. Максимум 200 КБ.» И вы делаете как все: открываете в новой вкладке какой-то компрессор картинок, кидаете туда скан паспорта, скачиваете уменьшенную версию и загружаете её.

Вот шаг, на котором почти никто не останавливается: вы только что отдали копию паспорта сайту, о котором никогда не слышали, — просто чтобы файл стал на 200 КБ меньше. Для фото кота это ерунда. Для документа удостоверяющего личность — совсем другое дело. Об этом и статья.

Почему документ — не «просто очередное фото»

Скан заграничного паспорта, СНИЛС, водительское удостоверение, квитанция — это не случайные картинки. В них ваша юридическая личность, и в большинстве юрисдикций это явно «персональные данные». По семейству законов, включающему GDPR, бразильский LGPD и японский APPI, отправка персональных данных непроверенному обработчику — не «теоретическая оплошность», а дыра в комплаенсе с именем. Компрессоры «по загрузке», что высоко в поиске, по определению — серверы, куда вы и шлёте байты. Некоторые прямо пишут, что загрузки могут пойти на обучение их моделей. Даже осторожные хранят копию на инфраструктуре, которой вы не контролируете, пусть и недолго, — и эта копия попадает в их цепочку бэкапов и зону риска.

Это не значит, что такие инструменты злые. Это значит, что путь загрузки имеет цену, которую лозунг «бесплатно и быстро» умалчивает, — а для документа личности эта цена и есть то, что вы хотите избежать. Решение не в том, чтобы не сжимать, а в том, чтобы сжимать там, где файл не покидает вашу машину.

Чего на самом деле хотят эти формы

Ограничения размера кажутся произвольными, потому что на бэкенде так чаще и есть: старые системы, дёшево хранить и неохота глотать мегабайтные блобы. Но они реальны, и их надо соблюдать. Глядя на порталы госуслуг, банковские KYC-потоки и страницы регистрации, паттерн повторяется:

Ловушка в том, что современный телефон снимает 12-мегапиксельное фото в 2–5 МБ. Отсканировать страницу в PNG — часто от 500 КБ до нескольких МБ. Оба кратно превышают лимит, и в обоих — как раз те данные личности, которые меньше всего хочется видеть на чужом сервере.

Закрыть лимит приватно

Нативное сжатие в браузере делает то же уменьшение, что облачный инструмент, но файл читает ваш собственный браузер, держит в памяти устройства и отдаёт Web Worker, который считает сжатие — теми же движками MozJPEG и PNG8, что использовал бы сервер, — целиком на вашем CPU. Результат — файл, который браузер сохраняет обратно на устройство. В любой момент картинка не открывает сетевого соединения ни с чем. Нет шага «загрузка», потому что на том конце никому не нужны пиксели, чтобы сделать работу.

Это тот же движок и та же модель приватности, что в гайде по локальному сжатию: без аккаунта, без API-ключа, без обмена, и — полезно для документов — метаданные EXIF и геометки по умолчанию удаляются, так что ваш GPS не летит вместе со сканом.

Слева: облачный компрессор загружает ваш скан паспорта на сторонний сервер, который может его хранить или сканировать. Справа: нативный браузерный инструмент читает скан, сжимает через WebAssembly и сохраняет на устройство — ноль байт не покидает машину.
Разница, которая важна для документа личности. Серверный компрессор получает ваш скан и хранит его на инфраструктуре, которой вы не контролируете. Нативный браузерный инструмент его вообще не получает: файл читается, сжимается в браузере и сохраняется на вашем устройстве. Ноль байт не покидает машину.

Реальные цифры движков сайта

Чтобы показать, что это не слова, я собрал два тестовых изображения, имитирующих документы, из-за которых люди реально мучаются, и прогнал их через те же движки, что использует сайт. Чтобы получить эти цифры, ничего не загружалось — сжатие шло локально.

Тестовое изображениеОригиналСжатоЭкономия
Фото документа телефоном (JPEG)467,0 КБ247,1 КБ (MozJPEG)−47,1%
Отсканированная страница с фото (PNG)622,5 КБ98,7 КБ (PNG8, 256 цветов)−84,1%

Фото документа — повседневный случай: телефонное фото, кратно большее любой нужной форме, урезано почти вдвое, а лицо остаётся узнаваемым. Отсканированная страница — драматичный случай: документ, который в основном белый с текстом и одним фото, проваливается на 84%, потому что PNG8 опускает его до плотной палитры в 256 цветов без видимой потери на печати. Ваши реальные документы будут отличаться, но порядок величины держится: эти порталы просят долю того, что выдаёт ваш телефон.

Выбирайте формат всерьёз

Документы делятся на два лагеря, и правильный формат зависит от того, что у вас:

Большинство порталов принимает оба, так что пусть решает содержимое: градиенты → JPEG, мелкий шрифт → PNG8. Если портал требует конкретный формат, инструмент позволяет выбрать формат вывода вместо принудительной ненужной конвертации.

Как попасть в точный лимит

«Меньше 200 КБ» — просто. «Меньше 100 КБ» или «меньше 20 КБ» для строгой госформы требует больше внимания:

Мой поток работы с документами

  1. Откройте инструмент. Без входа. Страница статична, сжатие идёт в worker на вашем устройстве.
  2. Перетащите документ. До 20 файлов за раз, каждый до 50 МБ — удобно, когда портал хочет разворот и оборот документа и справку вместе.
  3. Выберите качество и формат. JPEG для фото-документов, PNG8 для текста, по тому, что принимает портал.
  4. Сожмите. В вашем браузере. Ничего не загружается; файл не покидает машину.
  5. Предпросмотр, затем скачайте. Проверьте, читается ли текст или чётко ли лицо, и сохраните меньший файл.
  6. Закройте вкладку. Ни на одном сервере не остаётся копии, потому что копию никуда не послали.

Два предупреждения, специфичных для документов

Смежные гайды

Итог

В следующий раз, когда форма отклонит ваш скан из-за размера, сдержите рефлекс влепить паспорт в какой-то облачный компрессор. Уменьшите его в своём браузере: вы закрываете лимит портала, держите файл от края до края на устройстве и никогда не отдавали копию личности серверу, который не видите. Для фото кота удобство побеждает. Для документа личности должна побеждать приватность — а с локальным сжатием выбирать не надо.

Ваш паспорт — последний файл, который должен покинуть машину ради того, чтобы стать на 200 КБ меньше.

Уменьшите фото документа в браузере

Перетащите паспорт, СНИЛС или скан — до 20 файлов, каждый до 50 МБ. Сжатие идёт целиком в вашем браузере; ничего не загружается, аккаунт не нужен, файл не покидает устройство. Предпросмотр, затем скачивание.

Сжать картинки бесплатно →
Об авторе: Chuan
Создал CompactJPG, увидев, как люди загружают сканы паспортов и фото документов на случайные сайты-компрессоры ради уменьшения. Всё работает в вашем браузере, потому что документ личности принадлежит вашему устройству, а не чужому серверу.