O que é um arquivo PPM?

Um arquivo PPM (Portable Pixel Map, também chamado de portable pixmap) é o formato de imagem colorida do Netpbm: uma grade não comprimida de amostras de vermelho, verde e azul após um cabeçalho curto de texto. Suas variantes binária (P6) e de texto simples (P3) priorizam a facilidade de análise em vez da compactação.

Como os arquivos PPM funcionam

Uma imagem PPM consiste em um cabeçalho de texto seguido de um raster. O cabeçalho contém o número mágico e, em seguida, a largura, a altura e o valor máximo de amostra (maxval, de 1 a 65535) como números decimais em ASCII separados por espaços em branco; # inicia um comentário. Na variante bruta usual (P6), um único caractere de espaço em branco encerra o cabeçalho e o raster vem em seguida em linhas de cima para baixo, cada pixel como uma amostra de vermelho, uma de verde e uma de azul: um byte cada quando maxval é inferior a 256; caso contrário, dois bytes com o mais significativo primeiro. Já a variante de texto simples (P3) grava cada amostra como um número decimal em ASCII. Nada é comprimido, então uma imagem bruta de 1920 × 1080 com maxval 255 ocupa 6.220.800 bytes mais o cabeçalho. O Netpbm chama PPM de um formato de cores de mínimo denominador comum e de “extremamente ineficiente”, e diz que o objetivo é justamente ser muito fácil de implementar em programas.

Informações essenciais

  1. Grave a variante bruta P6, a menos que uma pessoa precise ler o arquivo. O Netpbm considera a variante de texto simples P3 bastante rara e, para obter a maior compatibilidade possível, recomenda um subconjunto mínimo: P6, uma quebra de linha, largura e altura separadas por um espaço, uma quebra de linha, um maxval de no máximo 255, uma quebra de linha e, então, o raster, com apenas uma imagem no arquivo. Um arquivo PPM bruto pode conter várias imagens em sequência de acordo com a especificação, mas o Netpbm alerta que a maioria das ferramentas lê apenas a primeira.
  2. Maxval define tanto a escala quanto a quantidade de bytes de cada amostra. Os valores vão de 0 a maxval, que pode ser qualquer valor de 1 a 65535, e os arquivos brutos passam de um byte por amostra para dois bytes em big-endian quando maxval chega a 256. Um leitor que fixa canais de 8 bits no código interpreta incorretamente um arquivo válido de 16 bits, e um que ignora maxval interpreta o brilho de forma errada. O Netpbm observa que os arquivos brutos eram limitados a 255 antes de abril de 2000 e que programas antigos podem depender disso.
  3. O significado das cores é especificado, mas não registrado no arquivo. As amostras PPM propriamente ditas são de vermelho, verde e azul BT.709 com a função de transferência gama BT.709, e maxval nos três canais corresponde ao branco D65. A própria especificação observa que os arquivos costumam usar sRGB em seu lugar ou armazenar amostras lineares; o cabeçalho não tem campo para indicar qual interpretação é usada nem espaço para um perfil ICC, então combine a interpretação com quem produz os arquivos. O pnmgamma do Netpbm converte entre essas variantes.
  4. PPM não tem canal alfa: cada pixel consiste em exatamente três amostras. O Netpbm mantém a transparência em um arquivo PGM separado usado como máscara de transparência, ou em seu formato PAM com o tipo de tupla RGB_ALPHA, então converter uma imagem com transparência para PPM descarta o alfa, a menos que ele seja exportado separadamente.

Quando os arquivos PPM são relevantes

Use PPM para conversão, inspeção ou depuração de imagens sem complicações quando a simplicidade do decodificador for útil. Converta o arquivo antes da entrega quando seu tamanho relativamente grande desperdiçar armazenamento ou largura de banda da rede.

Como a Transloadit ajuda com arquivos PPM

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

A tabela informa o que cada stack pode ler e gravar. Ela não diz como as amostras de 16 bits ou as variantes de cor do PPM são interpretadas, 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