O formato BMP

Dezembro 2016

O formato BMP

O formato BMP é um dos formatos mais simples, desenvolvido conjuntamente pela Microsoft e pela IBM, o que explica que seja partucularmente usadonas plataformas Windows e OS/2. Um ficheiro BMP é um ficheiro bitmap, ou seja, um ficheiro de imagem gráfico que armazena os pixéis sob a forma de quadro de pontos e gerindo as cores, quer em cor verdadeira, quer graças a uma paleta indexada. O formato BMP foi estudado de maneira a obter um bitmap independente do periférico de afixação (DIB, Device independent bitmap).

A estrutura de um ficheiro bitmap é a seguinte :

Rubrica do ficheiro

A rubrica do ficheiro fornece informações sobre o tipo de ficheiro (Bitmap), a sua dimensão e indica onde começam as informações relativas à imagem propriamente dita.

A rubrica compõe-se de quatro campos :

  • A assinatura (em 2 bytes), indicando que se trata de um ficheiro BMP com a ajuda dos dois caracteres.
    • BM, 424D hexadecimal, indica que se trata de um Bitmap Windows.
    • BA indica que se trata de um Bitmap OS/2.
    • CI indica que se trata de um ícone cor OS/2.
    • CP indica que se trata de um ponteiro de cor OS/2.
    • CI indica que se trata de um ícone OS/2.
    • PT indica que se trata de um ponteiro OS/2.
  • A dimensão total do ficheiro em bytes (codificado em 4 bytes)
  • Um campo reservado (em 4 bytes)
  • O deslocamento da imagem (em 4 bytes), ou seja, o endereço relativo do início das informações relativas à imagem em relação ao início do ficheiro.

Rubrica da imagem


A rubrica da imagem fornece informações sobre a imagem, nomeadamente as suas dimensões e as suas cores.

A rubrica da imagem é composta por quatro campos:

  • A dimensão da rubrica da imagem em bytes (codificada em 4 bytes). Os valores hexadecimais seguintes são possíveis, de acordo com o tipo de formato BMP :
    • 28 pour Windows 3.1x, 95, NT,…
    • 0C pour OS/2 1.x
    • F0 pour OS/2 2.x
  • A largura da imagem (em 4 bytes), ou seja, o número de pixéis horizontalmente (em inglês width)
  • A altura da imagem (em 4 bytes), ou seja, o número de pixéis verticalmente (em inglês height)
  • O número de planos (em 2 bytes). Este valor vale sempre 1
  • A profundidade de codificação da cor (em 2 bytes), ou seja, o número de bits utilizadas para codificar a cor. Este valor pode ser igual a 1,4,8,16,24 ou 32
  • O método de compressão (em 4 bytes). Este valor vale 0 quando a imagem não é comprimida, ou 1,2 ou 3, de acordo com o tipo de compressão utilizado:
    • 1 para uma codificação LAN de 8 bits por pixel
    • 2 para uma codificação LAN de 4 bits por pixel
    • 3 para uma codificação bitfields, significando que a cor é codificada por uma tripla máscara representada pela paleta
  • A dimensão total da imagem em bytes (em 4 bytes).
  • A resolução horizontal (em 4 bytes), ou seja, o número de pixéis por metro horizontalmente
  • A resolução vertical (em 4 bytes), ou seja, o número de pixéis por metro verticalmente
  • O número de cores da paleta (em 4 bytes)
  • O número de cores importantes da paleta (em 4 bytes). Este campo pode ser igual a 0 quando cada cor tem a sua importância.

Paleta da imagem

A paleta é opcional. Quando uma paleta é definida, contém sucessivamente 4 bytes para cada um das suas entradas que representam :

  • A componente azul (sobre um byte)
  • A componente verde (sobre um byte)
  • A componente vermelha (sobre um byte)
  • Um campo reservado (sobre um byte)

Codificação da imagem

A codificação da imagem faz-se escrevendo sucessivamente as bits que correspondem a cada pixel, linha por linha, começando pelo pixel inferior à esquerda.

  • As imagens em 2 cores utilizam 1 bit por pixel, o que significa que um byte permite codificar 8 pixéis
  • As imagens em 16 cores utilizam 4 bits por pixel, o que significa que um byte permite codificar 2 pixéis
  • As imagens em 256 cores utilizam 8 bits por pixel, o que significa que um byte codifica cada pixel
  • As imagens em cores reais utilizam 24 bits por pixel, o que significa que são necessárias 3 bytes para codificar cada pixel, tendo o cuidado de respeitar a ordem da alternância azul, verde e vermelha.

Cada linha da imagem deve comportar um número total de bytes que seja um múltiplo de 4; se não for o caso, a linha deve ser completada com 0 de maneira a respeitar este critério.

Veja também


The BMP format
The BMP format
El formato BMP
El formato BMP
BMP-Format
BMP-Format
BMP - Format BMP
BMP - Format BMP
Il formato BMP
Il formato BMP
Última modificação: 1 de outubro de 2009 às 14:14 por owliance.pt_004.
Este documento, intitulado 'O formato BMP', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (br.ccm.net) ao utilizar este artigo.