Saltar para o conteúdo

Mapa de bits

Origem: Wikipédia, a enciclopédia livre.

Em computação, um mapa de bits (também conhecido como raster) é uma imagem composta por linhas de pixels de cores distintas.[1] Por exemplo, um arquivo GIF é um tipo de imagem gráfica que utiliza esse formato.[2]

Como substantivo, o termo “mapa de bits” costuma referir-se especificamente a uma aplicação de mapeamento de bits: o mapa de pixels (ou pixmap), que representa um arranjo de pixels em que cada elemento pode armazenar mais de duas cores, usando mais de um bit por pixel. Nessa situação, o domínio em questão corresponde ao conjunto de pixels que constitui um dispositivo de saída gráfico digital (como uma tela ou monitor). Em determinados contextos, o termo “mapa de bits” implica um bit por pixel, já que “pixmap” é empregado para imagens que utilizam múltiplos bits por pixel.[3][4]

Em essência, um mapa de bits é uma forma de organização de memória ou um formato de arquivo de imagem destinado a armazenar imagens digitais. A expressão “mapa de bits” origina-se da terminologia de programação, significando, literalmente, um "array de bits” — isto é, um arranjo espacialmente mapeado de bits. Atualmente, juntamente com “pixmap”, refere-se ao conceito de um arranjo espacialmente mapeado de pixels. Imagens raster em geral podem ser tratadas como mapas de bits ou pixmaps, sejam sintéticas ou fotográficas, seja em arquivos ou em memória.

Muitos ambientes gráficos utilizam mapas de bits em seus subsistemas de renderização interna.[5] Por exemplo, o subsistema GDI do Microsoft Windows e do OS/2 emprega o formato de arquivo de mapa de bits do Windows e do OS/2, geralmente identificado pela extensão .BMP (ou .DIB, no caso de device-independent bitmap). Além do BMP, outros formatos que armazenam mapas de bits literais incluem InterLeaved Bitmap (ILBM), Portable Bitmap (PBM), X Bitmap (XBM) e Wireless Application Protocol Bitmap (WBMP). Da mesma forma, a maioria dos demais formatos de arquivo de imagem — tais como JPEG, TIFF, PNG e GIF — também armazena imagens em bitmap (em oposição a gráficos vetoriais), embora não sejam comumente chamados de “mapas de bits”, pois utilizam internamente formatos comprimidos.

Armazenamento de pixels

[editar | editar código-fonte]

Em mapas de bits não comprimidos, os pixels da imagem costumam ser armazenados com um número variável de bits por pixel, o qual determina a cor (profundidade de cor). Pixels de até 8 bits podem representar tons de cinza ou cores indexadas. Um canal alfa (para transparência) pode ser armazenado em um mapa de bits separado — semelhante a um bitmap em tons de cinza — ou em um quarto canal que, por exemplo, converte imagens de 24 bits em 32 bits por pixel.

Os bits que representam os pixels podem ser armazenados de forma compactada (packed) ou espaçados para coincidir com limites de byte ou palavra (unpacked), de acordo com as exigências do formato ou do dispositivo. Conforme a profundidade de cor, um pixel na imagem ocupará, no mínimo, n/8 bytes, onde n corresponde à profundidade de bits.

Para um mapa de bits não comprimido, cujos pixels estão organizados em linhas contíguas — como em arquivos Microsoft DIB ou BMP, ou em formatos TIFF não comprimidos —, um limite inferior para o tamanho de armazenamento de um bitmap de n bits por pixel (2ⁿ cores), em bytes, pode ser estimado pela fórmula:

onde “largura” e “altura” estão expressas em pixels.

Nesse cálculo, não estão incluídos o tamanho do cabeçalho nem o da paleta de cores, caso exista. Devido ao preenchimento de linhas (row padding) para alinhar o início de cada linha a um limite de armazenamento — como uma palavra —, podem ser necessários bytes adicionais.

Mapas de bits independentes de dispositivo e formato BMP

[editar | editar código-fonte]

O Microsoft definiu uma representação específica de mapas de bits em diferentes profundidades de cor como forma de facilitar a troca de bitmaps entre dispositivos e aplicações que adotam representações internas diversas. Essa representação foi denominada device-independent bitmap (DIB), e seu formato de arquivo é conhecido como formato DIB ou, comumente, formato BMP.[6]

Um mapa de bits independente de dispositivo (DIB) é um formato usado para definir bitmaps sem vínculo a um dispositivo específico, em diversas resoluções de cor. O principal objetivo dos DIBs é permitir que mapas de bits sejam transferidos de um dispositivo para outro — daí o termo “independente de dispositivo”. Um DIB é um formato externo, em contraste com um bitmap dependente de dispositivo, que aparece no sistema como um objeto de bitmap (criado por uma aplicação). Normalmente, um DIB é transportado em metafiles (por meio da função StretchDIBits()), em arquivos BMP e na Área de Transferência (formato CF_DIB).

Aqui, “independente de dispositivo” refere-se ao formato ou à disposição de armazenamento, não devendo ser confundido com o conceito de cores independentes de dispositivo.

Outros formatos de arquivo de mapas de bits

[editar | editar código-fonte]

O X Window System utiliza um formato XBM para imagens em preto e branco e XPM (pixmap) para imagens coloridas. Existem inúmeros outros formatos de arquivo de mapa de bits não comprimidos, embora a maioria não seja amplamente empregada.[7] Para a maioria dos propósitos, utilizam-se arquivos de mapa de bits comprimidos padronizados, como GIF, PNG, TIFF e JPEG, pois a compressão sem perdas proporciona as mesmas informações de um bitmap em um arquivo de tamanho reduzido.[8]

O formato TIFF e o JPEG oferecem diversas opções: o JPEG normalmente aplica compressão com perdas, enquanto o TIFF pode ser não comprimido ou utilizar compactação sem perdas Lempel–Ziv–Welch, semelhante à do GIF. Já o PNG emprega o método deflate, uma variante do algoritmo Lempel–Ziv de compressão sem perdas.

Há também diversos arquivos de imagem “crus” (raw), que contêm bitmaps sem qualquer informação adicional. Esses arquivos crús são apenas bitmaps gravados em arquivos, frequentemente sem cabeçalho ou dados de tamanho (diferenciam-se dos formatos “raw” fotográficos, que armazenam dados brutos de sensor em um contêiner estruturado, como no formato TIFF, juntamente com metadados extensos).

  1. «ARCHIVED: What are bitmap and vector graphics, and how are they different» (em inglês). University Information Technology Servivces. September 22, 2023. Consultado em April 21, 2024. Cópia arquivada em April 21, 2024  Verifique data em: |acessodata=, |arquivodata=, |data= (ajuda)
  2. Gregersen, Erik (January 26, 2022). «bitmap». Encyclopædia Britannica (em inglês). Consultado em April 21, 2024. Cópia arquivada em April 21, 2024  Verifique data em: |acessodata=, |arquivodata=, |data= (ajuda)
  3. James D. Foley (1995). Computer Graphics: Principles and Practice. [S.l.]: Addison-Wesley Professional. 13 páginas. ISBN 0-201-84840-6. The term bitmap, strictly speaking, applies only to 1-bit-per-pixel bilevel systems; for multiple-bit-per-pixel systems, we use the more general term pix-map (short for pixel map). 
  4. V.K. Pachghare (2005). Comprehensive Computer Graphics: Including C++. [S.l.]: Laxmi Publications. 93 páginas. ISBN 81-7008-185-8 
  5. Julian Smart; Stefan Csomor; Kevin Hock (2006). Cross-Platform GUI Programming with Wxwidgets. [S.l.]: Prentice Hall. ISBN 0-13-147381-6  Verifique o valor de |name-list-format=amp (ajuda)
  6. «DIBs and Their Uses». Microsoft Help and Support. 11 de fevereiro de 2005 
  7. «List of bitmap file types». File-Extensions.org 
  8. J. Thomas; A. Jones (2006). Communicating Science Effectively: a practical handbook for integrating visual elements. [S.l.]: IWA Publishing. ISBN 1-84339-125-2