PPM против PNG и BMP: размер, сжатие и кто кого
На первый взгляд PPM, PNG и BMP делают одно и то же — хранят растровую картинку из пикселей. Но за этой похожестью прячутся три разные философии. Один думает только о простоте, второй — об экономии места, третий — о совместимости с Windows. Разберём по полочкам, у кого больше вес, у кого есть прозрачность и какой формат выбрать под вашу задачу.
Знакомимся: трое героев
Прежде чем сравнивать, познакомимся с участниками. Все три — растровые форматы (картинка из пикселей), но выросли из разных миров.
- PPM (Portable Pixmap) — формат из семейства Netpbm, рождённый в мире Unix. Максимально простой: текстовый заголовок плюс сырые пиксели, никакого сжатия. Если хотите узнать его подробнее — есть статья «Что такое PPM».
- BMP (Bitmap) — родной растровый формат Windows. Тоже хранит пиксели почти без сжатия, но с бинарным заголовком в стиле Microsoft.
- PNG (Portable Network Graphics) — современный веб-формат. Главная фишка — сжатие без потерь и поддержка прозрачности.
Сжатие: главное различие
Если запомнить из этой статьи только одну вещь, пусть это будет вот что: PPM и BMP не сжимают картинку, а PNG — сжимает. Это и есть водораздел.
PPM и BMP хранят каждый пиксель «как есть», байт за байтом. Просто и быстро, но файл получается огромным. PNG же применяет умное сжатие без потерь: он находит повторы и закономерности в пикселях и упаковывает их компактнее. При этом ни один пиксель не теряется — распаковав PNG, вы получаете ровно ту же картинку. Это отличает его от JPG, который ради малого веса жертвует деталями.
Без потерь ≠ без сжатия
Частая путаница. «Без потерь» означает, что качество не страдает. «Без сжатия» — что файл не ужимается вообще. PNG — без потерь, НО со сжатием (лучшее из двух миров для графики). PPM и BMP — без потерь И без сжатия (поэтому тяжёлые).
Сравнительная таблица
| Свойство | PPM | PNG | BMP |
|---|---|---|---|
| Сжатие без потерь | Нет | Да | Нет* |
| Прозрачность (альфа) | Нет | Да | Частично |
| Типичный вес | Большой | Малый | Большой |
| Поддержка в браузерах | Нет | Да | Нет |
| Простота парсинга | Очень | Средняя | Средняя |
| Заголовок читается глазами | Да (P3) | Нет | Нет |
* BMP формально поддерживает RLE-сжатие, но на практике почти всегда хранится несжатым.
Размер на конкретном примере
Цифры нагляднее слов. Возьмём обычную фотографию 4000×3000 пикселей (12 мегапикселей) и посмотрим, сколько примерно займёт каждый формат:
Разница очевидна: PNG при том же качестве легче в 2–3 раза. А если бы мы взяли JPG (с потерями), он ужался бы до 2–4 МБ — но это уже другая лига, со своими компромиссами по качеству. Вывод простой: для хранения и пересылки несжатые PPM и BMP проигрывают вчистую.
Когда «тяжёлый» — это плюс
Несжатость PPM и BMP — не всегда минус. Если программе нужно быстро прочитать пиксели без распаковки, отсутствие сжатия экономит время процессора. Поэтому в обработке изображений PPM ценят именно за «сырость».
PPM против BMP: близнецы, но не братья
PPM и BMP похожи: оба несжатые, оба хранят пиксели напрямую. Но это два разных диалекта одной идеи, выросшие в разных экосистемах.
BMP — это Windows. Бинарный заголовок, поддержка цветовых палитр, привязка к экосистеме Microsoft. PPM — это Unix и программисты. Текстовый, кросс-платформенный заголовок, предельная простота: разобрать PPM в любом языке программирования можно за десяток строк, и именно за это его любят в пайплайнах. Подробнее об этом — в статье «Почему PPM любят в программировании».
Грубо говоря: BMP делали, чтобы картинку понял Windows, а PPM — чтобы её понял любой код. Оба сегодня уступают PNG по практичности, но PPM остаётся живым именно в технической нише.
Ещё одно отличие, важное на практике, — скорость доступа к пикселям. Чтобы достать конкретный пиксель из PNG, программе нужно сначала распаковать сжатые данные. В PPM и BMP пиксели лежат подряд и без обработки, поэтому случайный доступ к ним мгновенный. Для отображения в браузере это неважно, а вот для алгоритмов обработки изображений может быть решающим — поэтому несжатые форматы и держатся в технической нише.
Что выбрать под задачу
Вывод прост: в 9 случаях из 10 побеждает PNG — он лёгкий, с прозрачностью и открывается везде. PPM держится в нише программирования и обработки, а BMP — в наследии Windows. Поэтому, если у вас на руках PPM или BMP и нужно что-то с ними сделать в обычной жизни, логичный шаг — конвертировать их в PNG.
Превратите тяжёлый PPM в лёгкий PNG
Конвертер FormatZ ужмёт несжатый PPM до компактного PNG без потери качества — за пару секунд и прямо в браузере.
Конвертировать PPM в PNGНужна обратная операция — получить из картинки «сырые» пиксели? Есть конвертер PNG → PPM. А выбрать любое другое преобразование можно на странице всех форматов.


