Przenośna mapa szarości (.pgm)

Standard Standardowy

Portable Graymap Format (PGM) to specyfikacja obrazu w skali szarości z rodziny Netpbm, szeroko stosowana w widzeniu komputerowym, robotyce, inspekcji optycznej i algorytmach cyfrowego przetwarzania obrazu.

Inspekcja i metadane

Systemy operacyjne i analizatory plików identyfikują pliki PGM, sprawdzając początkową sekwencję bajtów binarnych:

Wybierz lub upuść pliki tutaj

Konwersja w 100% prywatna w przeglądarce - pliki nigdy nie opuszczają Twojego urządzenia

lub wklej Ctrl+V
Gwarancja prywatności bez przesyłania danych do sieci: 0 bajtów przesłanych na zewnętrzne serwery. Całe przetwarzanie odbyło się lokalnie w piaskownicy przeglądarki.

Podpis nagłówka na poziomie bajtów (Magic Bytes)

Systemy operacyjne i analizatory plików identyfikują pliki PGM, sprawdzając początkową sekwencję bajtów binarnych:

PODPIS HEX (OFFSET 0):

50 32 / 50 35

REPREZENTACJA ASCII: P2 / P5

Normalizacja: Standard biblioteki Netpbm

Specyfikacja techniczna

Architektura konteneraFormat Netpbm ASCII (P2) lub binarny (P5) z szerokością, wysokością, maksymalną wartością szarości i strumieniem pikseli
KompresjaNeskondensowane surowe bajty binarne lub czytelne dla człowieka liczby tekstowe ASCII
Kolejność bajtów (Endianness)Big-Endian (dla 16-bitowych próbek binarnych w trybie P5)
Przestrzenie kolorówLiniowe odcienie szarości lub odcienie szarości sRGB
Kanały i struktura1 kanał w skali szarości (precyzja 8-bitowa lub 16-bitowa)
Maks. wymiaryPraktycznie nieograniczone (obsługuje dowolną 64-bitową przestrzeń współrzędnych)
PrzezroczystośćBrak
Streaming i progresywne ładowanieSekwencyjne odtwarzanie strumieniowe wiersz po wierszu

Techniczna macierz porównawcza: PGM a konkurencja

Atrybut technicznyPGM (Bieżący)PBMPPMPNG
Tryb kolorówSkala szarości (8-bitowa / 16-bitowa)1-bitowy monochromatycznyTruecolor RGB (24-bitowy / 48-bitowy)Skala szarości, RGB, RGBA
Pokrewny format NetpbmPGM (Przenośna mapa szarości)PBM (Przenośna mapa bitowa)PPM (Przenośna mapa pikseli)Standard W3C spoza Netpbm
Magiczne bajtyP2 (ASCII) / P5 (Binarny)P1 (ASCII) / P4 (Binarny)P3 (ASCII) / P6 (Binarny)‰PNG....
KompresjaNeskondensowanyNeskondensowanyNeskondensowanyBezstratny Deflate

Typowe tryby uszkodzeń i przewodnik odzyskiwania szesnastkowego

Obraz wyświetla się jako odwrócony lub całkowicie prześwietlony na biało.

Główna przyczyna: Niedopasowany parametr 'maxval' w nagłówku (np. maxval zadeklarowany jako 1 zamiast 255).

Odzyskiwanie: Popraw linię nagłówka maxval lub przekoduj za pomocą konwertera Netpbm File2File.

Analiza bezpieczeństwa i wektory ataku na parser

Dekodery PGM muszą dokładnie sprawdzać, czy przeanalizowane liczby pikseli pasują do zadeklarowanych wymiarów, aby zapobiec przepełnieniu bufora.

Znane wektory ataku

  • Przepełnienie liczbowe podczas alokacji bufora szerokość * wysokość * (maxval > 255 ? 2 : 1).
  • Odczyt bufora poza zakresem podczas czytania wadliwych tokenów liczbowych ASCII.
  • Odmowa usługi (DoS) poprzez ogromną alokację pamięci wywołaną sfałszowanymi wymiarami nagłówka.

Najlepsze praktyki obronne: Ogranicz maksymalne dozwolone wymiary i limity alokacji pamięci przed odczytem strumieni pikseli.

Pochodzenie historyczne i kamienie milowe

2000Znormalizowano 16-bitową głębię (maksymalna wartość do 65535) w binarnym trybie P5 do obrazowania naukowego.
1993Włączony do zestawu narzędzi Netpbm jako standardowy pośredni format w skali szarości.
1989Jef Poskanzer tworzy PGM jako uzupełnienie PGM o pełną 256-poziomową obsługę skali szarości.

Główne zalety

  • Zerowa złożoność: niezwykle prosty do parsowania i zapisywania w języku C, Python lub WebAssembly bez zewnętrznych bibliotek.
  • Natywna obsługa 16-bitowej skali szarości czyni go idealnym do map wysokości, map głębi i obrazowania termowizyjnego.
  • Tryb ASCII (P2) umożliwia bezpośrednią inspekcję i manipulację surowymi wartościami pikseli w standardowych edytorach tekstowych.

Ograniczenia techniczne i wady

  • Brak kompresji: duże rozmiary plików w porównaniu do formatów skompresowanych, takich jak PNG.
  • Brak metadanych dotyczących wymiarów fizycznych, przestrzeni kolorów czy geolokalizacji.
  • Ściśle jednokanałowy: nie może przechowywać danych o kolorze ani przezroczystości alfa.

Ciekawe informacje techniczne

  • OpenCV, ROS (Robot Operating System) i systemy wizji maszynowej często używają PGM do map nawigacyjnych SLAM.
  • Programiści gier często używają 16-bitowych plików PGM jako map wysokości terenu, ponieważ surowe dane o wysokości są nieskompresowane i łatwe do załadowania.
  • Parametr 'maxval' w nagłówku określa maksymalną wartość jasności (zazwyczaj 255 dla 8-bitowych lub 65535 dla 16-bitowych).

Często zadawane pytania techniczne

Do czego służy format PGM?

Format PGM jest używany głównie w widzeniu komputerowym (OpenCV), robotyce (pliki map ROS), obrazowaniu naukowym i generowaniu map wysokości terenu 3D.

Jaka jest różnica między plikami PGM P2 i P5?

P2 to zwykły tekst ASCII, w którym każdy piksel jest zapisaną liczbą, podczas gdy P5 przechowuje piksele jako zwarte bajty binarne.

Jak mogę przekonwertować PGM na JPG lub PNG?

Prześlij swój plik PGM do serwisu File2File.app, aby przekonwertować go do formatu PNG lub JPG bezpośrednio w przeglądarce z zachowaniem pełnej prywatności.