🖼️ Breve introdução aos formatos de imagem: PBM, PGM, PPM e matrizes

PBM (Portable BitMap), PGM (Portable GrayMap) e PPM (Portable PixMap)
LInE - Prof. Leônidas

Introdução aos formatos de imagem portáteis (exemplo de emprego de matrizes)

Nos anos 80, Jef Poskanzer, propos um formato de imagem bastante simples, o PBM (Portable BitMap) que podia ser transmitido via email como texto. No final de 1988, Jef estendeu o PBM que emprega apenas 1 bit por pixel, definindo os formatos PGM (Portable GrayMap) e PPM (Portable PixMap). O PPM permite imagens com tons de cinza (usando mais bits por pixel) e o PGM que permite cores, via sistema RGB (usando mais bits por pixel).

P1

Portable BitMap (PBM)

O formato PBM é usado para imagens binárias (preto e branco). Cada pixel é representado por um único bit (0 para branco, 1 para preto por padrão). É o mais simples dos formatos Netpbm.

  • Formato de cabeçalho: P1 (texto) ou P4 (binário)
  • Profundidade de cor: 1 bit por pixel
  • Usos comuns: imagens de texto, ícones simples, máscaras
  • Vantagens: formato extremamente simples e compacto
📝 Exemplo com letra "L" (5x5)
P1
# Exemplo de "L" em PBM
5 5
1 0 0 0 0
1 0 0 0 0
1 0 0 0 0
1 0 0 0 0
1 1 1 1 1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
1
🔠 Exemplo com palavra "MAC" (11x5)
P1
# Exemplo de "MAC" em PBM
11 5
1 0 1 0 1 1 1 0 1 1 1
1 1 1 0 1 0 1 0 1 0 0
1 1 1 0 1 1 1 0 1 0 0
1 0 1 0 1 0 1 0 1 0 0
1 0 1 0 1 0 1 0 1 1 1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
P2

Portable GrayMap (PGM)

O formato PGM armazena imagens em tons de cinza. Cada pixel possui um valor que representa sua intensidade luminosa, variando de preto (0) a branco (valor máximo definido).

  • Formato de cabeçalho: P2 (texto) ou P5 (binário)
  • Profundidade de cor: 8 ou 16 bits por pixel
  • Implementa: até 65.536 tons de cinza (para 16 bits)
  • Usos comuns: imagens médicas, fotografias P&B, processamento de imagem
📝 Exemplo com letra "L" (5x5)
P2
# Exemplo de "L" em PGM
5 5
255
  0 255 255 255 255
  0 255 255 255 255
  0 255 255 255 255
  0 255 255 255 255
  0   0   0   0   0
📝 Exemplo com a palavra "LInE" (14x10)
P2
# Exemplo de "LInE" em PGM
14 7
255
   0   0   0   0   0   0   0   0   0   0   0   0   0   0
   0 100   0   0 150   0 200   0   0 200   0 250 250   0
   0 100   0   0 150   0 200 200   0 200   0 250   0   0
   0 100   0   0 150   0 200 200 200 200   0 250 250   0
   0 100   0   0 150   0 200   0 200 200   0 250   0   0
   0 100 100   0 150   0 200   0   0 200   0 250 250   0
   0   0   0   0   0   0   0   0   0   0   0   0   0   0
P3

Portable PixMap (PPM)

O formato PPM armazena imagens coloridas, empregando o formato RGB (Red-Green-Blue) (R=Vermelho, G=Verde e B=Azul), para isso utiliza uma tripla de naturais para cada pixel (R G G). Por isso, uma imagem PPM tem o triplo do tamanho em bytes de outra de mesma dimensão (mesma quantidade de pixels) no formato PGM.

  • Formato de cabeçalho: P3 (texto) ou P6 (binário)
  • Profundidade de cor: 24 ou 48 bits por pixel
  • Implementa: até 256 tons de vermelho, 256 de verde e 256 de azul (para 24 bits)
  • Usos comuns: imagens médicas, fotografias coloridas, processamento de imagem
📝 Exemplo com a letra "L" (3x4) - com cores.
P3
# Exemplo da letra "L", com cores
3 4
99
  0  0 79 79 79 79 79 79 79
  0 70  0 79 79 79 79 79 79
  0 50 50 79 79 79 79 79 79
 51 51 51 60 60  0 61  0 61
📝 Exemplo com a palavra "MAC" (11x4) - com "M" em tom de verde, "A" em azul e "C" em misto.
P3
# Palavra "MAC", com "M" azul, "A" verde e "C" misto
11 4
99
 0 79  0 79 79 79  0 79  0 79 79 79  0  0 79  0  0 79  0  0 79 79 79 79  0 79 79  0 79 79  0 79 79
 0 79  0  0 79  0  0 79  0 79 79 79  0  0 79 79 79 79  0  0 79 79 79 79  0 79 79 79 79 79 79 79 79
 0 79  0 79 79 79  0 79  0 79 79 79  0  0 79  0  0 79  0  0 79 79 79 79  0 79 79 79 79 79 79 79 79
 0 79  0 79 79 79  0 79  0 79 79 79  0  0 79 79 79 79  0  0 79 79 79 79  0 79 79  0 79 79  0 79 79

Leônidas de Oliveira Brandão
http://line.ime.usp.br

Alterações :
2026/03/16: primeira versão;