Portable Graymap (.pgm)

Стандарт Стандарт

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

Проверка и метаданни

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

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

Поверително - файловете никога не напускат устройството ви

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

Байтов подпис на заглавката (сигнатурни байтове)

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

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

50 32 / 50 35

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

Стандартизация: Стандарт на библиотеката Netpbm

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

Контейнерна архитектураASCII (P2) или двоичен (P5) формат Netpbm с ширина, височина, максимална стойност на сивото и поток от пиксели
КомпресияНекомпресирани сурови двоични байтове или четими за хората числа в ASCII текст
Поредност на байтовете (Endianness)Ред от старшия към младшия байт (Big-Endian) за 16-битовите двоични проби в режим P5.
Цветови пространстваЛинейна скала на сивото или скала на сивото sRGB
Канали и структура1 канал в скала на сивото (8-битова или 16-битова точност)
Максимални размериПрактически неограничени (поддържат се координати с произволен 64-битов обхват)
ПрозрачностНяма
Поточно предаване и прогресивно зарежданеПоследователно поточно възпроизвеждане ред по ред

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

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

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

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

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

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

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

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

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

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

Най-добри практики за защита: Ограничете максимално допустимите размери и заделянето на памет преди четене на потоците от пиксели.

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

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

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

  • Компактната структура на PGM може да улесни създаването на базови програми за четене, макар че обработката на дълбочината на пробите, заглавните части и неправилния вход изисква внимание.
  • Вградената поддръжка на 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 съхранява проби в нива на сивото. Конвертирайте го в PNG за изображение без загуби, което се поддържа от много програми за преглед, или в JPEG, ако ви е нужен по-малък файл за снимка; конверторът работи в браузъра ви.