Co to jest format pliku PGM?
.pgm (skrót od Portable Gray Map) to format pliku powiązany z Netpbm, wieloplatformowym zestawem narzędzi do grafiki bitmapowej.
Co zawierają pliki PGM?
Pliki PGM przechowują obrazy w skali szarości o głębi 8 lub 16 bitów. Pojedynczy plik .pgm może przechowywać wiele takich obrazów. Każdy piksel może przyjąć wartość od 0 (czarny) do 65 535 (biały).
Jak dane są zapisywane w plikach PGM?
Pliki PGM mogą zapisywać dane w następujących wariantach:
- tekst jawny (nagłówek pliku z magiczną liczbą
P2), czytelne dla człowieka kodowanie ASCII - binarny (nagłówek pliku z magiczną liczbą
P5), przechowujący surowe próbki binarne na piksel
Oba warianty obsługują wiele połączonych obrazów w jednym pliku. Nagłówek pliku definiuje szerokość, wysokość oraz maksymalną wartość szarości (Maxval). Treść pliku zawiera wartości próbek dla każdego piksela obrazu.
Do czego służą pliki PGM?
Plik .pgm jest przykładem implementacji standardu .pnm (Portable Anymap). Pliki PGM są używane głównie jako format wymiany obrazów w przetwarzaniu obrazu, systemach wizji komputerowej i łańcuchach narzędzi graficznych. Oprócz PGM dostępne są inne implementacje z tej samej rodziny:
Bezpieczeństwo
RYZYKO: LOWPGM to pasywny, w pełni udokumentowany obraz rastrowy - nagłówek plus dane pikseli, bez skryptów czy treści wykonywalnych, więc otwieranie go jest bezpieczne. Jedyne praktyczne uwagi nie dotyczą złośliwego oprogramowania: pliki są duże, ponieważ PGM jest nieskompresowany (przekonwertuj na PNG, aby zaoszczędzić miejsce), a źle sformatowany lub przewymiarowany nagłówek może spowodować, że prymitywny parser przydzieli ogromny bufor, więc używaj sprawdzonych przeglądarek. Nie ma obaw o prywatność w metadanych/EXIF, ponieważ format ich nie obsługuje.
Szczegóły formatu
w pigułceProgramy otwierające pliki PGM
Szczegóły techniczne
specyfikacja| Rodzina formatów | Rodzina Netpbm PNM, obok .pbm (1-bitowa bitmapa) i .ppm (kolor RGB) |
| Model kolorów | Tylko skala szarości - brak kanałów kolorów, brak kanału alfa |
| Głębia kolorów | 8-bitowa (Maxval 255, 256 odcieni szarości) lub 16-bitowa (Maxval do 65 535) |
| Magiczna liczba | „P2” (0x50 0x32) dla wariantu ASCII; „P5” (0x50 0x35) dla wariantu binarnego - znajduje się pod offsetem 0 |
| Typ MIME | image/x-portable-graymap |
| Warianty kodowania | P2: czytelne dla człowieka wartości pikseli w formacie ASCII; P5: surowe binarne dane pikseli - nagłówek w obu wariantach jest zawsze tekstem ASCII |
| Kompresja | Brak - próbki pikseli są przechowywane w postaci surowej i nieskompresowanej |
| Kolejność bajtów | Big-endian dla próbek 16-bitowych (gdy Maxval > 255); próbki 8-bitowe zajmują po jednym bajcie |
| Bajty na próbkę | 1 bajt na piksel, gdy Maxval ≤ 255; 2 bajty big-endian na piksel, gdy Maxval > 255 |
| Struktura nagłówka | Pola ASCII oddzielone białymi znakami w kolejności: magiczna liczba, szerokość obrazu, wysokość obrazu, Maxval - po których następuje pojedynczy biały znak separatora, a następnie raster pikseli |
| Obsługa wielu obrazów | Wiele obrazów może być łączonych sekwencyjnie w jednym pliku .pgm (zarówno w wariantach P2, jak i P5) |
| Limit wymiarów | Brak narzuconego przez format maksimum; ograniczone jedynie przez zakres liczb całkowitych ASCII w nagłówku i dostępną pamięć |
| Typowy rozmiar pliku | Nieskompresowany; skaluje się jako szerokość × wysokość × bajty-na-próbkę - od kilobajtów dla małych obrazów do dziesiątek megabajtów dla dużych |
| Deweloper | Jef Poskanzer, wywodzący się z zestawu narzędzi Pbmplus (później kontynuowanego jako projekt Netpbm) |
| Obsługa platform | Windows, macOS, Linux, Unix - natywnie obsługiwany przez narzędzia Netpbm i wspierany przez większość bibliotek przetwarzania obrazu (OpenCV, ImageMagick, GIMP) |
| Wydano | 1988 (Pbmplus toolkit, later Netpbm) |
| Najnowsza wersja | Stable since the 1990s; current Netpbm 10.86+ implements it (no format version bump) |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | netpbm.sourceforge.net |
Konwersje PGM
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki PGM.