O que é o formato de arquivo PNM?

Portable Anymap é um nome abrangente para os formatos raster PBM, PGM e PPM do Netpbm. Juntos, eles abrangem dados de imagem monocromáticos, em escala de cinza e RGB por meio de estruturas muito semelhantes.

Como o formato de arquivo PNM funciona

PNM não é um formato de arquivo próprio: a documentação do Netpbm o chama de uma abstração que se refere coletivamente a PBM (dois níveis), PGM (escala de cinza) e PPM (colorido). Cada imagem começa com um número mágico de dois caracteres, de P1 a P6, seguido pela largura e altura como números decimais em ASCII e, para PGM e PPM, por um valor máximo de amostra chamado maxval. As variantes brutas (P4, P5, P6) armazenam então o raster em binário, em linhas de cima para baixo: PBM agrupa oito pixels por byte, com 1 significando preto, enquanto PGM e PPM usam um byte por amostra quando maxval é inferior a 256 e dois bytes, com o mais significativo primeiro, nos demais casos. As variantes de texto simples (P1, P2, P3) gravam cada amostra como texto ASCII. O Netpbm descreve esses formatos como intermediários que, em seu uso mais puro, existem apenas em um pipe entre dois programas.

Informações essenciais

  1. Um nome .pnm ou o tipo de mídia image/x-portable-anymap não indica qual formato um arquivo contém. Leia o número mágico de dois caracteres: P1 e P4 são PBM, P2 e P5 são PGM, P3 e P6 são PPM, e o menor número de cada par corresponde à variante de texto simples. Nenhum dos tipos de mídia do Netpbm está registrado na IANA. Um programa que recebe a solicitação de gravar “PNM” precisa escolher um dos três; o ImageMagick, por exemplo, seleciona o mais adequado para a imagem e grava a variante binária, salvo instrução em contrário.
  2. As amostras PGM e PPM nem sempre têm 8 bits. O maxval do cabeçalho pode ser qualquer valor de 1 a 65535; arquivos brutos usam um byte por amostra quando ele é inferior a 256 e dois bytes, com o mais significativo primeiro, nos demais casos, então dados de 10 bits com maxval 1023 são válidos. Os valores das amostras são relativos a maxval, então um leitor que presume 255 interpreta incorretamente tanto a disposição dos bytes quanto o brilho. O Netpbm observa que os arquivos brutos eram limitados a 255 antes de abril de 2000 e que programas antigos podem depender disso.
  3. Os três formatos não têm canal alfa nem campo para um perfil ICC; os únicos dados de formato livre são comentários # no cabeçalho. O Netpbm armazena a transparência em um arquivo PGM separado usado como máscara de transparência, ou em seu formato PAM mais recente, no qual um tipo de tupla como RGB_ALPHA adiciona um plano de opacidade. PAM começa com P7 e é um quarto formato do Netpbm, não um dos formatos PNM, então não presuma que um leitor PNM o aceite.
  4. Um arquivo PBM, PGM ou PPM bruto pode conter várias imagens consecutivas sem delimitador, uma regra adicionada em julho de 2000; as variantes de texto simples contêm exatamente uma. O Netpbm alerta que a maioria das ferramentas ignora tudo após a primeira imagem, e a documentação do OpenImageIO lista o suporte a múltiplas imagens como indisponível para PNM, então não conte com a preservação de um arquivo com múltiplas imagens ao longo de um pipeline.

Quando o formato de arquivo PNM é relevante

Use arquivos da família PNM como intermediários simples entre ferramentas de linha de comando ou etapas de análise de imagem, quando um analisador que caiba em poucas linhas importar mais que o tamanho. Eles não são comprimidos e contêm quase nenhum metadado, então converta para um formato comprimido para armazenamento ou entrega; a própria documentação de PBM do Netpbm diz que não é um formato que normalmente se usaria para armazenar ou transmitir um arquivo.

Como a Transloadit ajuda com o formato de arquivo PNM

A tabela de formatos de imagem da Transloadit lista PBM, PGM, PPM, PNM e PAM como formatos que seus Robots baseados no ImageMagick, incluindo /image/resize, podem ler e gravar, então um arquivo Netpbm pode ser convertido em um formato comprimido em um Step.

A tabela informa o que cada stack pode ler e gravar. Ela não diz qual variante PNM é gravada nem como as amostras de 16 bits são tratadas, e nenhuma Assembly foi executada para este verbete.

Explore os formatos de arquivo e os recursos de compressão da Transloadit

Fontes

Transforme conhecimento sobre mídia em um pipeline funcional

Conecte uploads, processamento, IA, armazenamento e entrega por meio de uma única API declarativa, com o stack de codificação, o ajuste de escala e as constantes mudanças de formatos gerenciados para você.

Experimente a Transloadit gratuitamente