Przenośna mapa szarości (.pgm)
Netpbm StandardnoPortable Graymap Format (PGM) specifikacija je slika u sivim tonovima iz obitelji Netpbm, koja se naširoko koristi u računalnom vidu, robotici, optičkoj inspekciji i algoritmima obrade digitalnih slika.
Pregledaj i metapodaci
Operativni sustavi i alati za analizu datoteka identificiraju PGM datoteke provjerom početnog niza binarnih bajtova:
Potpis zaglavlja na razini bajtova (Magic Bytes)
Operativni sustavi i alati za analizu datoteka identificiraju PGM datoteke provjerom početnog niza binarnih bajtova:
HEX POTPIS (POMAK 0):
50 32 / 50 35ASCII PRIKAZ: P2 / P5
Standardizacija: Netpbm Library Standard
Tehničke specifikacije
| Arhitektura spremnika | ASCII (P2) or binary (P5) Netpbm format with width, height, maximum gray value, and pixel stream |
| Kompresija | Uncompressed raw binary bytes or human-readable ASCII text numbers |
| 字节序 | Big-Endian (for 16-bit binary samples in P5 mode) |
| Prostori boja | Linear Grayscale or sRGB Grayscale |
| Kanali i struktura | 1 channel grayscale (8-bit or 16-bit precision) |
| Maksimalne dimenzije | Practically unlimited (supports arbitrary 64-bit coordinate space) |
| Prozirnost | None |
| Streaming i progresivno | Sequential row-by-row streaming playback |
Tehnička matrica usporedbe: PGM vs Konkurencija
| Tehnički atribut | PGM (Trenutno) | PBM | PPM | PNG |
|---|---|---|---|---|
| Način boja | Sivi tonovi (8-bitni / 16-bitni) | 1-bitni monokromatski | RGB Truecolor (24-bitni / 48-bitni) | Sivi tonovi, RGB, RGBA |
| Netpbm srodnik | PGM (Portable Graymap) | PBM (Portable Bitmap) | PPM (Portable Pixmap) | W3C standard koji nije iz Netpbm obitelji |
| Magični bajtovi | P2 (ASCII) / P5 (Binarno) | P1 (ASCII) / P4 (Binarno) | P3 (ASCII) / P6 (Binarno) | ‰PNG.... |
| Kompresija | Nekompr. | Nekompr. | Nekompr. | Bezgubitni Deflate |
Uobičajeni načini oštećenja i vodič za heksadecimalni oporavak
Slika se prikazuje invertirano ili potpuno isprano u bijelo.
Temeljni uzrok: Nepodudaranje parametra 'maxval' u zaglavlju (npr. maxval deklariran kao 1 umjesto 255).
Oporavak: Ispravite redak zaglavlja maxval ili transkodirajte pomoću alata File2File Netpbm Converter.
Sigurnosna analiza i vektori napada na parser
PGM dekoderi moraju pažljivo provjeriti odgovaraju li analizirani brojevi piksela deklariranim dimenzijama kako bi spriječili prekoračenje međuspremnika.
Poznati vektori napada
- Prelijevanje cijelog broja tijekom dodjele međuspremnika širina * visina * (maxval > 255 ? 2 : 1).
- Pretjerano čitanje međuspremnika pri čitanju nepravilnih tokena ASCII brojeva.
- Ukraćivanje usluge (DoS) kroz masivnu alokaciju memorije potaknutu lažnim dimenzijama zaglavlja.
Najbolje obrambene prakse:
Povijesni izvori i prekretnice
Ključne prednosti
- Nula složenosti: iznimno jednostavno za parsiranje i zapisivanje u C-u, Pythonu ili WebAssemblyju bez vanjskih biblioteka.
- Izvorna 16-bitna podrška za sive tonove čini ga idealnim za visinske karte, karte dubine i termalno snimanje.
- ASCII način rada (P2) omogućuje izravan pregled i manipulaciju sirovim vrijednostima piksela u standardnim uređivačima teksta.
Tehnička ograničenja i nedostaci
- Nema kompresije: velike veličine datoteka u usporedbi s komprimiranim formatima poput PNG-a.
- Nedostaju mu metapodatci za fizičke dimenzije, prostore boja ili geolokaciju.
- Strogo jednokanalni: ne može pohraniti podatke u boji niti alfa prozirnost.
Zanimljive tehničke činjenice
- OpenCV, ROS (Robot Operating System) i sustavi strojnog vida često koriste PGM za SLAM navigacijske karte.
- Razvojni programeri igara često koriste 16-bitne PGM datoteke kao visinske karte terena jer su sirovi podaci o nadmorskoj visini nekomprimirani i laki za učitavanje.
- Parametar 'maxval' u zaglavlju definira maksimalnu vrijednost svjetline (obično 255 za 8-bitne ili 65535 za 16-bitne slike).
Često postavljana tehnička pitanja
Za što se koristi PGM format?
PGM se prvenstveno koristi u računalnom vidu (OpenCV), robotici (ROS mape), znanstvenom snimanju i generiranju 3D karata visine terena (heightmap).
Koja je razlika između P2 i P5 PGM datoteka?
P2 je običan ASCII tekst gdje je svaki piksel pisani broj, dok P5 pohranjuje piksele kao kompaktne binarne bajtove.
Kako mogu pretvoriti PGM u JPG ili PNG?
Učitajte svoju PGM datoteku na File2File.app kako biste je pretvorili u PNG ili JPG izravno u svom pregledniku uz potpunu privatnost.