Portable Graymap (.pgm)

Netpbm Стандарт

Форматът за преносими карти в сиви нюанси (PGM) е спецификация за изображения в нюанси на сивото от семейството Netpbm, широко използвана в алгоритми за компютърно зрение, роботика, оптична инспекция и цифрова обработка на изображения.

Инспектиране и метаданни

Операционните системи и файловите анализатори идентифицират PGM файлове чрез проверка на началната двоична байтова последователност:

Изберете или пуснете файлове тук

100% поверително конвертиране в браузъра - файловете никога не напускат вашето устройство

или поставете Ctrl+V
Гаранция за поверителност с нулево мрежово предаване: 0 байта са качени на външни сървъри. Цялата обработка се извършва локално в пясъчниците на вашия браузър.

Байтов подпис на хедъра (Magic Bytes)

Операционните системи и файловите анализатори идентифицират PGM файлове чрез проверка на началната двоична байтова последователност:

HEX ПОДПИС (ОФСЕТ 0):

50 32 / 50 35

ASCII ПРЕДСТАВЯНЕ: P2 / P5

Стандартизация: Netpbm Library Standard

Технически спецификации

Контейнерна архитектураASCII (P2) or binary (P5) Netpbm format with width, height, maximum gray value, and pixel stream
КомпресияUncompressed raw binary bytes or human-readable ASCII text numbers
Поредност на байтовете (Endianness)Big-Endian (for 16-bit binary samples in P5 mode)
Цветови пространстваLinear Grayscale or sRGB Grayscale
Канали и структура1 channel grayscale (8-bit or 16-bit precision)
Максимални размериPractically unlimited (supports arbitrary 64-bit coordinate space)
ПрозрачностNone
Стрийминг и прогресивно зарежданеSequential row-by-row streaming playback

Техническа сравнителна матрица: PGM спрямо конкуренти

Технически атрибутPGM (Текущ)PBMPPMPNG
Цвети режимНюанси на сивото (8-bit / 16-bit)1-bit монохромноRGB Truecolor (24-bit / 48-bit)Нюанси на сивото, RGB, RGBA
Роднo устройство в NetpbmPGM (Portable Graymap)PBM (Portable Bitmap)PPM (Portable Pixmap)Не-Netpbm W3C стандарт
Магически байтовеP2 (ASCII) / P5 (Бинарно)P1 (ASCII) / P4 (Бинарно)P3 (ASCII) / P6 (Бинарно)‰PNG....
КомпресияНекомпресираноНекомпресираноНекомпресираноБеззагубна Deflate

Често срещани режими на повреда и ръководство за хекс възстановяване

Изображението се показва инвертирано или напълно в изпепелено бяло.

Първопричина: Несъответстващ параметър „maxval" в заглавната част (напр. maxval е деклариран като 1 вместо 255).

Възстановяване: Коригирайте реда на заглавната част за maxval или транскодирайте с File2File Netpbm Converter.

Анализ на сигурността и вектори на атака към парсера

PGM декодерите трябва внимателно да валидират дали анализираният брой пиксели съответства на декларираните размери, за да се предотврати препълване на буфера.

Известни вектори на атака

  • Цялостно препълване по време на разпределението на буфера ширина * височина * (maxval > 255 ? 2 : 1).
  • Препълване на буфера при четене на дефектни ASCII цифрови маркери.
  • Отказ от услуга чрез масивно разпределение на паметта, задействано от фалшиви размери в заглавната част.

Защитни добри практики:

Исторически произход и етапи

2000Стандартизирана е 16-битова дълбочина (максимална стойност до 65535) в бинарния режим P5 за научно изображение.
1993Включен е в инструментариума Netpbm като стандартен междинен формат за сиви нюанси.
1989Джеф Посканзър създава PGM, за да допълни PBM с пълна поддръжка на 256 нива на сивото.

Основни предимства и плюсове

  • Нулева сложност: изключително лесен за парсиране и записване на C, Python или WebAssembly без външни библиотеки.
  • Нативната поддръжка на 16-битови нюанси на сивото го прави идеален за карти на височините, карти на дълбочината и термично изображение.
  • ASCII режимът (P2) позволява директна инспекция и манипулация на сурови стойности на пикселите в стандартни текстови редактори.

Технически ограничения и минуси

  • Липса на компресия: големи файлови отпечатъци в сравнение с компресирани формати като PNG.
  • Липса на метаданни за физически размери, цветови пространства или геолокация.
  • Строго едноканален: не може да съхранява цветни данни или алфа прозрачност.

Интересни технически факти

  • OpenCV, ROS (Роботизирана операционна система) и системите за машинно зрение често използват PGM за навигационни карти SLAM.
  • Разработчиците на игри често използват 16-битови PGM файлове като карти на височините за терен, тъй като данните за суровата денивелация са некомпресирани и лесни за зареждане.
  • Параметърът „maxval" в заглавната част дефинира максималната стойност на яркостта (обикновено 255 за 8-битови или 65535 за 16-битови изображения).

Често задавани технически въпроси

За какво се използва PGM форматът?

PGM се използва предимно в компютърното зрение (OpenCV), роботиката (картови файлове на ROS), научното изображения и генерирането на карти на височините на 3D терени.

Каква е разликата между P2 и P5 PGM файловете?

P2 е обикновен ASCII текст, където всеки пиксел е изписано число, докато P5 съхранява пикселите като компактни двоични байтове.

Как мога да конвертирам PGM в JPG или PNG?

Качете вашия PGM файл в File2File.app, за да го конвертирате в PNG или JPG директно във вашия браузър с пълна поверителност.