Graymap portatile (.pgm)
Netpbm StandardPortable Graymap Format (PGM) este specificația pentru imagini în tonuri de gri a familiei Netpbm, utilizată pe scară largă în viziune computerizată, robotică, inspecție optică și algoritmi de procesare digitală a imaginilor.
Inspectează și Metadate
Sistemele de operare și analizatoarele de fișiere identifică fișierele PGM prin inspectarea secvenței binare inițiale:
Semnătura antetului la nivel de octet (Magic Bytes)
Sistemele de operare și analizatoarele de fișiere identifică fișierele PGM prin inspectarea secvenței binare inițiale:
SEMNĂTURĂ HEX (OFFSET 0):
50 32 / 50 35REPREZENTARE ASCII: P2 / P5
Standardizare: Netpbm Library Standard
Specificații tehnice
| Arhitectură container | ASCII (P2) or binary (P5) Netpbm format with width, height, maximum gray value, and pixel stream |
| Compresie | Uncompressed raw binary bytes or human-readable ASCII text numbers |
| Endianitatea octeților | Big-Endian (for 16-bit binary samples in P5 mode) |
| Spații de culoare | Linear Grayscale or sRGB Grayscale |
| Canale și structură | 1 channel grayscale (8-bit or 16-bit precision) |
| Dimensiuni maxime | Practically unlimited (supports arbitrary 64-bit coordinate space) |
| Transparență | None |
| Streaming și progresiv | Sequential row-by-row streaming playback |
Matrice de comparație tehnică: PGM vs Competitori
| Atribut tehnic | PGM (Curent) | PBM | PPM | PNG |
|---|---|---|---|---|
| Mod de culoare | Tonuri de gri (8 biți / 16 biți) | Monocrom pe 1 bit | Truecolor RGB (24 biți / 48 biți) | Tonuri de gri, RGB, RGBA |
| Înrudit Netpbm | PGM (Portable Graymap) | PBM (Portable Bitmap) | PPM (Portable Pixmap) | Standard W3C non-Netpbm |
| Octeți magici | P2 (ASCII) / P5 (Binar) | P1 (ASCII) / P4 (Binar) | P3 (ASCII) / P6 (Binar) | ‰PNG.... |
| Compresie | Necomprimat | Necomprimat | Necomprimat | Deflate fără pierderi |
Moduri comune de corupție și ghid de recuperare hexazecimală
Imaginea se afișează inversată sau complet albă, arsă.
Cauză principală: Parametru „maxval" nepotrivit în antet (de ex. maxval declarat ca 1 în loc de 255).
Recuperare: Corectați linia de antet maxval sau transcodați cu File2File Netpbm Converter.
Analiză de securitate și vectori de atac asupra parserului
Decodoarele PGM trebuie să valideze cu atenție că numărul de pixeli analizați corespunde dimensiunilor declarate pentru a preveni depășirea memoriei tampon.
Vectori de atac cunoscuți
- Depășire de întregi în timpul alocării tamponului lățime * înălțime * (maxval > 255 ? 2 : 1).
- Citire excesivă a memoriei tampon la citirea jetoanelor numerice ASCII malformate.
- Refuz de serviciu prin alocare masivă de memorie declanșată de dimensiuni fabricate în antet.
Cele mai bune practici de securitate:
Origini istorice și repere
Avantaje cheie și beneficii
- Complexitate zero: extrem de simplu de analizat sintactic și de scris în C, Python sau WebAssembly fără biblioteci externe.
- Suportul nativ pentru tonuri de gri pe 16 biți îl face ideal pentru hărți de altitudine (heightmaps), hărți de adâncime și imagistică termică.
- Modul ASCII (P2) permite inspecția directă și manipularea valorilor brute ale pixelilor în editoare de text standard.
Limitări tehnice și dezavantaje
- Fără compresie: amprente mari ale fișierelor în comparație cu formatele comprimate precum PNG.
- Lipsește metadatele pentru dimensiuni fizice, spații de culoare sau geolocalizare.
- Strict cu un singur canal: nu poate stoca date de culoare sau transparență alfa.
Curiozități tehnice interesante
- OpenCV, ROS (Robot Operating System) și sistemele de viziune mașină utilizează frecvent PGM pentru hărți de navigație SLAM.
- Dezvoltatorii de jocuri folosesc adesea fișiere PGM pe 16 biți ca hărți de teren deoarece datele de relief brute sunt necomprimate și ușor de încărcat.
- Parametrul „maxval" din antet definește valoarea maximă de luminozitate (de obicei 255 pentru 8 biți sau 65535 pentru 16 biți).
Întrebări tehnice frecvente
Pentru ce este folosit formatul PGM?
PGM este utilizat în principal în viziune computerizată (OpenCV), robotică (fișiere de hartă ROS), imagistică științifică și generarea de hărți de elevație a terenului 3D.
Care este diferența dintre fișierele PGM P2 și P5?
P2 este text ASCII pur în care fiecare pixel este un număr scris, în timp ce P5 stochează pixelii ca octeți binari compacți.
Cum pot converti PGM în JPG sau PNG?
Încarcă fișierul tău PGM pe File2File.app pentru a-l converti în PNG sau JPG direct în browserul tău cu confidențialitate completă.