Graymap portatile (.pgm)

Netpbm Standard

Portable Graymap Format (PGM) è la specifica per immagini in scala di grigi della famiglia Netpbm, ampiamente utilizzata nella visione artificiale, nella robotica, nell'ispezione ottica e negli algoritmi di elaborazione delle immagini digitali.

Ispeziona e metadati

I sistemi operativi e gli analizzatori di file identificano i file PGM ispezionando la sequenza di byte binari iniziale:

Seleziona o rilascia i file qui

Conversione 100% privata nel browser: i file non lasciano mai il tuo dispositivo

o incolla Ctrl+V
Garanzia di privacy con zero trasmissioni di rete: 0 byte caricati su server esterni. Tutta l'elaborazione è avvenuta localmente nella sandbox del tuo browser.

Firma dell'intestazione a livello di byte (Magic Bytes)

I sistemi operativi e gli analizzatori di file identificano i file PGM ispezionando la sequenza di byte binari iniziale:

FIRMA ESADECIMALE (OFFSET 0):

50 32 / 50 35

RAPPRESENTAZIONE ASCII: P2 / P5

Standardizzazione: Netpbm Library Standard

Specifiche tecniche

Architettura del containerFormato Netpbm ASCII (P2) o binario (P5) con larghezza, altezza, valore massimo di grigio e flusso di pixel
CompressioneByte binari grezzi non compressi o numeri di testo ASCII leggibili dall'uomo
Endianness dei byteBig-Endian (per campioni binari a 16 bit in modalità P5)
Spazi coloreScala di grigi lineare o scala di grigi sRGB
Canali e struttura1 canale in scala di grigi (precisione a 8 bit o 16 bit)
Dimensioni massimePraticamente illimitate (supporta uno spazio di coordinate arbitrario a 64 bit)
TrasparenzaNessuna
Streaming e progressivoRiproduzione in streaming sequenziale riga per riga

Matrice di confronto tecnico: PGM vs Concorrenti

Attributo tecnicoPGM (Corrente)PBMPPMPNG
Modalità coloreScala di grigi (8 bit / 16 bit)Monocromatico a 1 bitTruecolor RGB (24 bit / 48 bit)Scala di grigi, RGB, RGBA
Formato affine NetpbmPGM (Portable Graymap)PBM (Portable Bitmap)PPM (Portable Pixmap)Standard W3C non Netpbm
Byte magiciP2 (ASCII) / P5 (Binario)P1 (ASCII) / P4 (Binario)P3 (ASCII) / P6 (Binario)‰PNG....
CompressioneNon compressoNon compressoNon compressoDeflate senza perdita

Modalità di corruzione comuni e guida al recupero Hex

L'immagine viene visualizzata invertita o completamente bruciata in bianco.

Causa principale: Parametro 'maxval' non corrispondente nell'intestazione (es. maxval dichiarato come 1 anziché 255).

Ripristino: Correggere la riga dell'intestazione maxval o convertire con File2File Netpbm Converter.

Analisi di sicurezza e vettori di attacco del parser

I decoder PGM devono verificare attentamente che i conteggi dei pixel analizzati corrispondano alle dimensioni dichiarate per evitare il superamento del buffer.

Vettori di attacco noti

  • Overflow di interi durante l'allocazione del buffer larghezza * altezza * (maxval > 255 ? 2 : 1).
  • Lettura oltre i limiti del buffer durante la lettura di token numerici ASCII malformati.
  • Denial of service tramite allocazione di memoria massiccia attivata da dimensioni di intestazione fabricate.

Migliori pratiche difensive: Limitare le dimensioni massime consentite e i limiti di allocazione della memoria prima di leggere i flussi di pixel.

Origini storiche e tappe fondamentali

2000Profondità a 16 bit (maxval fino a 65535) standardizzata in modalità binaria P5 per l'imaging scientifico.
1993Incorporato nel toolkit Netpbm come formato standard intermedio in scala di grigi.
1989Jef Poskanzer crea PGM per affiancare PBM con il pieno supporto della scala di grigi a 256 livelli.

Vantaggi principali e pro

  • Zero complessità: estremamente semplice da analizzare e scrivere in C, Python o WebAssembly senza librerie esterne.
  • Il supporto nativo per la scala di grigi a 16 bit lo rende ideale per mappe di altezza, mappe di profondità e termografia.
  • La modalità ASCII (P2) consente l'ispezione diretta e la manipolazione dei valori dei pixel grezzi in editor di testo standard.

Limiti tecnici e svantaggi

  • Nessuna compressione: ingombri di file elevati rispetto a formati compressi come PNG.
  • Privo di metadati per dimensioni fisiche, spazi colore o geolocalizzazione.
  • Strettamente a canale singolo: non può memorizzare dati di colore o trasparenza alfa.

Curiosità tecniche interessanti

  • OpenCV, ROS (Robot Operating System) e i sistemi di visione artificiale utilizzano frequentemente PGM per le mappe di navigazione SLAM.
  • Gli sviluppatori di giochi utilizzano spesso file PGM a 16 bit come mappe di altezza del terreno perché i dati di elevazione grezzi non sono compressi e sono facili da caricare.
  • Il parametro 'maxval' nell'intestazione definisce il valore di luminosità massimo (tipicamente 255 per 8 bit o 65535 per 16 bit).

Domande tecniche frequenti

A cosa serve il formato PGM?

PGM viene utilizzato principalmente nella visione artificiale (OpenCV), nella robotica (file di mappa ROS), nell'imaging scientifico e nella generazione di mappe di altezza di terreni 3D.

Qual è la differenza tra i file PGM P2 e P5?

P2 è un semplice testo ASCII in cui ogni pixel è un numero scritto, mentre P5 memorizza i pixel come byte binari compatti.

Come posso convertire PGM in JPG o PNG?

Carica il tuo file PGM su File2File.app per convertirlo in PNG o JPG direttamente nel tuo browser con la massima privacy.