Как устроены цифровые изображения и почему они занимают много места
Размер файла изображения в байтах зависит от трех ключевых факторов: количества пикселей (разрешения), объема цветовой информации, приходящейся на каждый пиксель, и эффективности алгоритмов сжатия.
Каждый пиксель несжатого изображения требует определенного количества бит для кодирования цвета. В стандартном 24-битном представлении на каждый пиксель приходится по 8 бит (256 уровней) для красного, зеленого и синего каналов. Картинка размером 4000 × 3000 пикселей содержит 12 миллионов точек. Без сжатия такой файл занимал бы около 36 МБ.
Чтобы уменьшить этот объем, применяются кодировщики. Их задача — найти избыточность в данных. Если соседние пиксели имеют одинаковый или близкий цвет, кодировщик может описать их группой, а не по отдельности. Эффективность этого процесса зависит от характера изображения: плавные градиенты, резкие границы текста или хаотичный цифровой шум кодируются с разной степенью сжатия.
Локальная обработка и конфиденциальность данных
Инструмент «Сжиматель картинок» работает по принципу локальной обработки. Ваши изображения обрабатываются в браузере. На BroBroGo ничего не загружается. Файлы выбираются или перетаскиваются на страницу и остаются на устройстве в течение всей работы; отправка данных на внешние серверы не происходит.
Поскольку все вычисления выполняются непосредственно на вашем устройстве, скорость обработки зависит от мощности процессора компьютера или мобильного телефона, а не от скорости интернет-соединения.
Особенности работы с форматами JPEG, PNG и WebP
Каждый графический формат использует свои методы оптимизации данных, что напрямую влияет на результат сжатия.
- JPEG — формат сжатия с потерями, разработанный для фотографий. Он оптимизирован под особенности человеческого зрения, которое более чувствительно к перепадам яркости, чем к изменениям цвета. При сжатии JPEG-файлов кодировщик отбрасывает часть цветовой информации. Этот формат не поддерживает прозрачность. Если выбрать формат вывода JPEG для изображения с прозрачными областями, эти области будут автоматически залиты белым цветом.
- PNG — формат, традиционно использующий сжатие без потерь. Он идеально подходит для графики с четкими границами, текста, логотипов и скриншотов интерфейсов. Однако PNG-фотографии практически не уменьшаются в размере при стандартном сохранении. В данном инструменте вывод в PNG реализован с контролируемыми потерями: количество уникальных цветов принудительно сокращается до палитры максимум из 255 цветов, после чего файл упаковывается без потерь. Это позволяет радикально уменьшить размер PNG-файлов с плоскими цветами и графикой.
- WebP — современный формат, поддерживающий как сжатие с потерями, так и без потерь, а также прозрачность. Он обеспечивает значительно более высокую плотность сжатия по сравнению с JPEG и PNG при аналогичном визуальном качестве.
При обработке инструмент может вывести подсказку: «Эта картинка станет намного меньше в формате WebP. Измените формат вывода ниже, чтобы попробовать.». Это уведомление появляется в тех случаях, когда конвертация исходного файла в WebP позволяет сократить его размер более чем в два раза по сравнению с оптимизированным исходным форматом.
Алгоритмы оптимизации и управление качеством
В интерфейсе инструмента отсутствуют числовые шкалы качества в процентах. Вместо этого управление сжатием осуществляется через четыре предустановленных режима в панели настроек, которая открывается по клику на заголовок «Недостаточно малый или недостаточно четкий размер?»:
- Четче — режим, который максимально сохраняет исходные детали и структуру изображения, обеспечивая при этом минимальный уровень уменьшения размера файла.
- Рекомендуем — сбалансированный режим по умолчанию, обеспечивающий оптимальное соотношение между визуальной четкостью и размером файла.
- Меньше — режим агрессивного сжатия, допускающий более заметные изменения в деталях ради достижения минимального размера в байтах.
- Точный размер — режим, позволяющий вручную указать желаемый лимит веса файла.
При сжатии PNG-файлов все три стандартных режима («Четче», «Рекомендуем», «Меньше») используют метод сокращения цветов. Инструмент тестирует несколько вариантов уменьшения палитры и сравнивает каждый из них с оригиналом. Если визуальные искажения превышают допустимый порог, этот вариант отбрасывается. Режим «Четче» применяет только самый мягкий шаг сокращения цветов с жестким контролем сходства. Режим «Рекомендуем» использует умеренный диапазон, а «Меньше» — наиболее широкий диапазон с допущением более заметных изменений.
Если ни один из вариантов с сокращением цветов не проходит проверку качества (например, на сложных фотографиях, сохраненных в PNG), инструмент переходит к обычному сжатию без потерь. В этом случае в результатах отображается примечание: «В этой картинке слишком много мелких деталей, чтобы сжать её сильнее без заметной потери качества, поэтому она осталась пиксель в пиксель.».
Для JPEG и WebP кодировщик также подбирает параметры экспериментально, оценивая несколько вариантов кодирования и выбирая самый компактный из тех, что соответствуют критериям качества выбранного режима.
Если оптимизированная версия файла не уступает по размеру оригиналу, инструмент возвращает исходный файл без изменений, выводя сообщение: «Этот файл уже максимально уменьшен, поэтому сохранен оригинал.».
Работа в режиме «Точный размер»
При выборе режима «Точный размер» появляется поле ввода целевого значения в KB или MB (допустимый диапазон от 10 KB до 50 MB, по умолчанию установлено значение 100 KB).
Алгоритм пытается достичь указанного лимита за несколько итераций. Если стандартного изменения параметров сжатия JPEG или WebP недостаточно, инструмент начинает пропорционально уменьшать разрешение картинки — примерно на 10% за каждый шаг. Это уменьшение автоматически останавливается при достижении одного из двух ограничений:
- Общее количество пикселей снизилось до 1/3 от исходного значения (например, изображение размером 12 Мп уменьшится максимум до 4 Мп, где длина каждой стороны составит около 58% от первоначальной).
- Длина большей стороны изображения достигла 800 пикселей.
Если лимит размера успешно достигнут, в строке «Цель» выводится статус «Достигнуто». Если даже после максимального сжатия и уменьшения разрешения до указанных пределов файл весит больше лимита, выводится статус «Ближайший возможный результат».
Изменение разрешения и метаданные
Инструмент сохраняет исходную ширину и высоту изображения в пикселях. Изменение разрешения происходит только в трех случаях:
- Использование режима «Точный размер», когда лимит веса требует физического уменьшения картинки.
- Принудительное ограничение через параметры «Макс. ширина» и «Макс. высота» (принимают значения от 1 до 12000 пикселей, по умолчанию установлена граница 2560). Эти параметры работают как ограничители сверху: изображения меньшего размера не растягиваются.
- Автоматическое ограничение для защиты оперативной памяти устройства при обработке сверхбольших изображений (свыше 24 миллионов пикселей). В этом случае выводится сообщение «Автоограничение для безопасности памяти».
При сжатии происходит полная перезапись структуры файла. Вся сопутствующая метаинформация — EXIF-данные, настройки камеры, дата съемки и GPS-координаты — удаляется. Единственным исключением являются файлы, которые были возвращены без изменений со статусом «Этот файл уже максимально уменьшен, поэтому сохранен оригинал.». Инструмент автоматически учитывает угол поворота, записанный в метаданных оригинала, поэтому фотографии с мобильных устройств сохраняют правильную ориентацию.
Часто задаваемые вопросы
Загружаются ли мои картинки на сервер?
Нет. Инструмент сжатия работает в браузере и сохраняет файлы на вашем устройстве.
Какие форматы поддерживаются?
Поддерживаются файлы JPEG, PNG и WebP на входе и вывод в форматах JPEG, WebP и PNG.
Ухудшится ли качество картинок?
Умное сжатие проверяет различные варианты и сохраняет наименьший результат, который выглядит четким.
Можно ли задать точный целевой размер файла?
Да. Режим целевого размера подбирает подходящий уровень качества и при необходимости слегка уменьшает размеры.