128 191 240 файлов
4,6 Trustpilot
с тех пор, как 2013

Все о файлах PBM

0.0/5(0 голоса)

PBM — это, пожалуй, самый простой формат изображений в мире. Он состоит исключительно из цифр 0 и 1, причем каждая цифра соответствует одному пикселю. Строка и столбец в тексте определяют положение на изображении. Таким образом, изображения можно создавать даже с помощью текстового редактора. Это почти то же самое, что раскрашивать клетку карандашом. PBM не поддерживает сжатие, альфа-каналы, цвета. Даже оттенки серого. Он может просто нарисовать пиксель (1) или не нарисовать (0).

TLDR:

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

История файлов PBM

PBM был изобретен в 1980-х годах Джефом Посканзером, программистом из Беркли, который хотел решить простую проблему: отправлять изображения по электронной почте. В 1980-х годах электронная почта еще не была так развита, как сегодня. Надежно отправлять можно было только ASCII-символы, а бинарные файлы, такие как изображения, часто повреждались при передаче. Таким образом, Посканцер разработал с помощью PBM формат изображений, который решал именно эту проблему.

Техническое устройство

Изображение PBM в своей простой версии (P1) состоит из трех частей: магического числа, размеров и собственно данных пикселей. Опционально можно использовать комментарии, например, для описания содержания.

Состав Пример Значение
Магическое число P1 Plain PBM (ASCII-вариант)
Комментарий # mein bild Опционально, с # введением
Ширина Высота 24 7 Размеры в пикселях
Растровые данные 0 1 1 0 ... 1 = черный, 0 = белый

Следующий пример показывает полное изображение из документации:

P1
# feep.pbm
24 7
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0
0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0
0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0
0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0
0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

(цифры 0 отображены немного темнее только для лучшей визуализации)

Между нулями и единицами ясно различим текст FEEP. Таким образом, PBM соответствует двоичному ASCII ;).

Plain vs. Raw: P1 и P4

Позканцер позже ввел двоичный вариант и сделал его стандартным выводом инструментов Netpbm. Вариант Plain (P1) появился первым, но был заменен из-за гораздо большего потребления места («lavishly wasteful» — «чрезвычайно расточительный»).

Характеристика Plain PBM (P1) Raw PBM (P4)
Данные пикселей ASCII-символы 0 и 1 биты, упакованные по 8 в байт
Удобно для чтения Да, полностью Только заголовок
Объем памяти на пиксель ~2 байта (символ + пробел) 1/8 байта (1 бит)
Макс. длина строки Рекомендуется 70 символов Без ограничений
Изображений в файле Ровно 1 Возможно несколько (с июля 2000 г.)

Сегодня вся семья PBM, в частности PPM, часто используется в качестве промежуточного формата. В самом простом и кратком из всех вариантов применения он существует только в конвейере между двумя программами, то есть только на время выполнения. Это подводит нас к преимуществам формата:

Преимущества файлов PBM

  • Отсутствие зависимостей: ни декодера, ни библиотеки. Для чтения и записи достаточно нескольких строк на C, Python или в оболочке.
  • Философия Unix: инструменты PBM — это фильтры. Их можно соединять друг с другом с помощью конвейера: cat bild.pbm | pbmtopgm | ppmtojpeg > out.JPG. Более 330 программ в пакете Netpbm работают именно так.
  • Педагогика: кто хочет понять обработку изображений (не редактирование изображений), в идеале начинает с PBM.
  • Надежность: ни одного поврежденного заголовка, ни одного поврежденного блока. В файле может содержаться так мало информации, что практически ничего не может пойти не так. А если все-таки один бит выйдет из строя, изображение останется читаемым.

Семейство PBM

PBM не единственный. В конце 1988 года Посканцер расширил семейство, добавив PGM (Portable Gray Map, оттенки серого, магическое число P2/P5) и PPM (Portable Pixel Map, цвет RGB, P3/P6). Вместе они образуют PNM: Portable Any Map. Позже появился еще PAM (P7) в качестве универсального расширения.

PBM является основой и одновременно самым «радикальным» представителем семейства, предлагая всего два варианта: свет включен или выключен — пиксель есть или его нет. Никаких цветов, никакой прозрачности, никаких оттенков серого. Только черно-белое изображение, читаемое непосредственно в исходном коде.

Pbmplus и Netpbm

Посканцер поддерживал Pbmplus до его последнего выпуска в конце 1991 года. После этого проект больше не поддерживался. В 1993 году появился Netpbm как форк сообщества, по сути, перепакованная версия Pbmplus с исправлениями ошибок и расширениями от разработчиков со всего мира. С 1999 года Netpbm поддерживается Брайаном Хендерсоном и сегодня входит практически в каждый дистрибутив Linux.

PBM как таковой устарел. Почтовые серверы без проблем обрабатывают файлы JPG, PNG и даже видео. Однако «цветная» версия ppm используется ежедневно в конвейерах на системах Linux. PBM остается в образовательной сфере: его легко объяснить, легко понять и — настолько прост PBM — нарисовать на клетчатой бумаге.

Источники

Netpbm Спецификация формата PBM
Netpbm История — очень интересная статья об истории pbm
Вики: Джеф Посканцер

0.0/5(0 голоса)

Конвертируйте, открывайте и редактируйте файлы PBM

Информация о файлах PBM

Программное обеспечение для открытия файлов PBM
Программное обеспечение для редактирования файлов PBM
MIME-тип для PBM

Все конвертеры из или в формат PBM

Комментариев нет

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *


Перетащите файлы сюда...