Mapa de cinzas portátil (.pgm)
Netpbm PadrãoO formato PGM (Portable Graymap Format) é a especificação de imagem em escala de cinza da família Netpbm, amplamente utilizada em visão computacional, robótica, inspeção óptica e algoritmos de processamento de imagem digital.
Inspecionar e metadados
Sistemas operacionais e analisadores de arquivos identificam arquivos PGM inspecionando a sequência de bytes binários inicial:
Assinatura de Cabeçalho em Nível de Byte (Magic Bytes)
Sistemas operacionais e analisadores de arquivos identificam arquivos PGM inspecionando a sequência de bytes binários inicial:
ASSINATURA HEX (OFFSET 0):
50 32 / 50 35REPRESENTAÇÃO ASCII: P2 / P5
Padronização: Netpbm Library Standard
Especificações Técnicas
| Arquitetura do Contêiner | Formato Netpbm ASCII (P2) ou binário (P5) com largura, altura, valor máximo de cinza e fluxo de pixels |
| Compressão | Bytes binários brutos não comprimidos ou números de texto ASCII legíveis por humanos |
| Ordem de Bytes (Endianness) | Big-Endian (para amostras binárias de 16 bits no modo P5) |
| Espaços de Cores | Escala de cinza linear ou escala de cinza sRGB |
| Canais e Estrutura | 1 canal em escala de cinza (precisão de 8 bits ou 16 bits) |
| Dimensões Máximas | Praticamente ilimitado (suporta espaço de coordenadas de 64 bits arbitrário) |
| Transparência | Nenhuma |
| Streaming e Progressivo | Reprodução de streaming sequencial linha por linha |
Matriz de Comparação Técnica: PGM vs Concorrentes
| Atributo Técnico | PGM (Atual) | PBM | PPM | PNG |
|---|---|---|---|---|
| Modo de Cor | Escala de cinza (8 bits / 16 bits) | Monocromático de 1 bit | RGB Truecolor (24 bits / 48 bits) | Escala de cinza, RGB, RGBA |
| Formato Irmão Netpbm | PGM (Mapa de Cinza Portátil) | PBM (Mapa de Bits Portátil) | PPM (Mapa de Pixels Portátil) | Padrão W3C não Netpbm |
| Bytes Mágicos | P2 (ASCII) / P5 (Binário) | P1 (ASCII) / P4 (Binário) | P3 (ASCII) / P6 (Binário) | ‰PNG.... |
| Compressão | Não comprimido | Não comprimido | Não comprimido | Deflate sem perdas |
Modos Comuns de Corrupção e Guia de Recuperação Hex
A imagem é exibida invertida ou completamente estourada em branco.
Causa Raiz: Parâmetro 'maxval' incompatível no cabeçalho (por exemplo, maxval declarado como 1 em vez de 255).
Recuperação: Corrija a linha de cabeçalho maxval ou faça a transcodificação com o Conversor Netpbm do File2File.
Análise de Segurança e Vetores de Ataque ao Analisador
Os decodificadores PGM devem validar cuidadosamente se as contagens de pixels analisadas correspondem às dimensões declaradas para evitar estouro de buffer.
Vetores de Ataque Conhecidos
- Estouro de inteiro durante a alocação de buffer largura * altura * (maxval > 255 ? 2 : 1).
- Leitura excessiva de buffer ao ler tokens de números ASCII malformados.
- Negação de serviço por meio de alocação de memória massiva acionada por dimensões de cabeçalho fabricadas.
Melhores Práticas Defensivas: Limite as dimensões máximas permitidas e os limites de alocação de memória antes de ler os fluxos de pixels.
Origens Históricas e Marcos
Principais Vantagens e Prós
- Complexidade zero: extremamente simples de analisar e gravar em C, Python ou WebAssembly sem bibliotecas externas.
- O suporte nativo a escala de cinza de 16 bits o torna ideal para mapas de altura, mapas de profundidade e imagens térmicas.
- O modo ASCII (P2) permite inspeção e manipulação direta de valores de pixels brutos em editores de texto padrão.
Limitações Técnicas e Contras
- Sem compressão: grandes pegadas de arquivos em comparação com formatos compactados como PNG.
- Carece de metadados para dimensões físicas, espaços de cores ou geolocalização.
- Estritamente de canal único: não pode armazenar dados de cores ou transparência alfa.
Curiosidades Técnicas
- OpenCV, ROS (Robot Operating System) e sistemas de visão computacional usam frequentemente PGM para mapas de navegação SLAM.
- Desenvolvedores de jogos costumam usar arquivos PGM de 16 bits como mapas de altura de terreno porque os dados de elevação brutos não são compactados e são fáceis de carregar.
- O parâmetro 'maxval' no cabeçalho define o valor máximo de brilho (normalmente 255 para 8 bits ou 65535 para 16 bits).
Perguntas Técnicas Frequentes
Para que serve o formato PGM?
O PGM é usado principalmente em visão computacional (OpenCV), robótica (arquivos de mapa ROS), imagens científicas e geração de mapas de altura de terreno 3D.
Qual é a diferença entre arquivos PGM P2 e P5?
O P2 é um texto ASCII simples onde cada pixel é um número escrito, enquanto o P5 armazena pixels como bytes binários compactos.
Como posso converter PGM para JPG ou PNG?
Envie seu arquivo PGM para o File2File.app para convertê-lo em PNG ou JPG diretamente no seu navegador com total privacidade.