Prévia do material em texto
13/08/2015 Formato de arquivo BMP Wikipédia, a enciclopédia livre https://en.wikipedia.org/wiki/BMP_file_format 1/14 Windows Bitmap Extensão do arquivo .bmp , .dib Tipo de mídia Internet image / bmp, [ 1 ] image / x‐bmp Código de tipo "BMP" 'BMPf' 'BMPp' Uniforme Tipo Identifier (UTI) com.microsoft.bmp Tipo de formato Raster Formato aberto ? OSP para WMF Formato de arquivo BMP Da Wikipédia, a enciclopédia livre O formato de arquivo BMP , também conhecido como arquivo de imagem bitmap ou bitmap independente de dispositivo formato de arquivo (DIB) ou simplesmente um bitmap , é um raster formato de arquivo de imagem usado para armazenar bitmap imagens digitais , independentemente do dispositivo de exibição (como um adaptador gráfico ), especialmente em Microsoft Windows [ 2 ] e OS / 2 [ 3 ] sistemas operacionais. O formato de arquivo BMP é capaz de armazenar bidimensionais imagens digitais de arbitrária largura, altura e resolução, tanto monocromáticos e em cores, em várias profundidades de cor e, opcionalmente, com compressão de dados , canais alfa , e perfis de cores . O Windows Metafile especificação (WMF) cobre o formato de arquivo BMP. [ 4 ] Entre outros wingdi.h define constantes e estruturas BMP. Conteúdo 1 bitmaps independentes de dispositivo eo formato de arquivo BMP 2 Estrutura de arquivo 2.1 DIBs na memória 2,2 cabeçalho do arquivo Bitmap 2,3 cabeçalho DIB (cabeçalho informações bitmap) 2.4 Tabela de cores 2.5 armazenamento Pixel 2.5.1 matriz Pixel (dados de bitmap) 2.5.2 Compressão 2.5.3 formato Pixel 2.6 RGB subtipos de vídeo 2.7 Exemplo 1 2.8 Exemplo 2 3 Uso de formato BMP 4 formatos relacionados 5 Referências 6 Ligações externas Bitmaps independentes de dispositivo e do formato de arquivo BMP Microsoft definiu uma representação particular de bitmaps de cor de diferentes profundidades de cor, como uma ajuda para a troca de bitmaps entre dispositivos e aplicações com uma variedade de representações internas. Eles chamaram esses bitmaps ou DIBs independentes de dispositivo, eo formato de arquivo para eles é chamado de formato de arquivo DIB ou formato de arquivo de imagem BMP. De acordo com o suporte da Microsoft: [ 5 ] Um bitmap independente de dispositivo (DIB) é um formato usado para definir bitmaps independentes de dispositivo em várias resoluções de cor. O principal objetivo do DIBs é permitir bitmaps para ser transferido de um dispositivo para outro (daí, a parte independente do dispositivo do nome). Um DIB é um formato externo, em contraste com um mapa de bits dependentes do dispositivo, que aparece no sistema como um 13/08/2015 Formato de arquivo BMP Wikipédia, a enciclopédia livre https://en.wikipedia.org/wiki/BMP_file_format 2/14 Diagrama 1 A estrutura do arquivo de imagem bitmap objecto de mapa de bits (criado por uma aplicação ...). Um DIB é normalmente transportado em metarquivos (geralmente utilizando os StretchDIBits () função), arquivos BMP, ea Área de Transferência (formato de dados CF_DIB). As seções seguintes abordam os dados armazenados no arquivo BMP ou DIB em detalhe. Este é o formato de arquivo BMP padrão. [ 5 ] Alguns aplicativos criam arquivos de imagem bitmap que não são compatíveis com a documentação da Microsoft. Além disso, nem todos os campos são utilizados; um valor de 0 será encontrada nesses campos não utilizados. Estrutura de arquivos O arquivo de imagem bitmap consiste em estruturas de tamanho fixo (cabeçalhos), bem como estruturas de tamanho variável que aparecem em uma seqüência predeterminada. Muitas versões diferentes de algumas destas estruturas podem aparecer no arquivo, devido à longa evolução deste formato de arquivo. Referindose ao esquema 1, o arquivo de mapa de bits é composta de estruturas na seguinte ordem: 13/08/2015 Formato de arquivo BMP Wikipédia, a enciclopédia livre https://en.wikipedia.org/wiki/BMP_file_format 3/14 Nome Estrutura Opcional Tamanho Propósito Comentários Cabeçalho do arquivo Bitmap Não 14 bytes Para armazenar informações gerais sobre o arquivo de imagem bitmap Não é necessário depois que o arquivo é carregado na memória Cabeçalho DIB Não De tamanho fixo (existem sete versões diferentes) Para armazenar informações detalhadas sobre a imagem bitmap e definir o formato do pixel Seguese imediatamente o cabeçalho do arquivo Bitmap Máscaras de bits extras Sim 3 ou 4 DWORDs [ 6 ] (a 12 ou 16 bytes) Para definir o formato de pixel Presente apenas no caso de o cabeçalho DIB é o BITMAPINFOHEADER Tabela de cores Semi opcional Size variável Para definir cores usadas pelos dados da imagem bitmap (array Pixel) Obrigatória para profundidades de cor ≤ 8 bits Gap1 Sim Sizevariável Alinhamento estrutura Um artefato do Arquivo compensar a matriz Pixel no cabeçalho do arquivo Bitmap Matriz de pixel Não Size variável Para definir os valores reais dos pixels O formato de pixel é definido pelo cabeçalho DIB ou máscaras de bits extra. Cada linha da matriz Pixel é acolchoada para um múltiplo de 4 bytes de tamanho Gap2 Sim Sizevariável Alinhamento estrutura Um artefato dos dados de perfil ICC campo de deslocamento no cabeçalho DIB ICC perfil de cor Sim Size variável Para definir o perfil de cor para o gerenciamento de cores Também pode conter um caminho para um arquivo externo que contém o perfil de cor. Quando carregado na memória como "DIB nãoembalado", está localizado entre a tabela de cor e Gap1. [ 7 ] DIBs na memória Um arquivo de imagem bitmap carregado na memória tornase uma estrutura de dados DIB um componente importante da API do Windows GDI. A estrutura de dados em memória DIB é quase o mesmo que o formato BMP, mas que não contém o 14byte de cabeçalho do ficheiro de mapa de bits e começa com o cabeçalho DIB. Para DIBs carregados na memória, a tabela de cores também pode ser constituída por entradas de 16 bits que constituem índices para a paleta atualmente percebi [ 8 ] (um nível adicional de falta de direção), em vez de definições de cores RGB explícitas. Em todos os casos, a matriz de pixel deve começar a uma endereço de memória que é um múltiplo de 4 bytes. Em DIBs não embalados carregados na memória, os dados do perfil de cor opcional deve ser localizado imediatamente após a tabela de cores e antes do gap1 e de pixel matriz [ 7 ] (ao contrário de diag. 1). Quando o tamanho de gap1 e gap2 é zero, a estrutura na memória de dados do DIB é habitualmente referido como "DIB embalado" e pode ser referida por um único apontador aponta para o início do cabeçalho de DIB. Em todos os casos, a matriz de pixel deve começar a uma endereço de memória que é um múltiplo de 4 bytes. Em alguns casos, pode ser necessário ajustar o número de entradas na tabela de cores, a fim de forçar o endereço de memória da matriz de pixels a um múltiplo de 4 bytes. [ 8 ] Por "embalados" DIB carregados na memória, a cor opcional dados de perfil deve seguir imediatamente a matriz de pixels, como representado na fig. 1 (com gap1 = 0 e gap2 = 0). [ 7 ] "Refeições DIBs" são obrigados por do Windows funções da API do clipboard, bem como por alguns do Windows modelado funções da escova e de recursos. [ 9 ] Cabeçalho do arquivo Bitmap 13/08/2015 Formato de arquivo BMP Wikipédia, a enciclopédia livre https://en.wikipedia.org/wiki/BMP_file_format 4/14 Este bloco de bytes está no início do processo e é usado para identificar o ficheiro. Uma aplicação típica lê este bloco primeiro para garantir que o arquivo é realmente um arquivo BMP e que não está danificado. Os dois primeiros bytes do formato de arquivo BMP é o personagem "B", em seguida, o personagem "M" em ASCII codificação. Todos os valores inteiros são armazenados em pouco endian formato (isto é, byte menos significativoem primeiro lugar). Hex offset Deslocamento dezembro Tamanho Propósito 00 0 2 bytes O campo de cabeçalho usado para identificar o arquivo BMP e DIB é 0x42 0x4D em hexadecimal , mesmo que BM em ASCII. As seguintes entradas são possíveis: BM Windows 3.1x, 95, NT, etc ... BA OS / 2 struct matriz bitmap CI OS ícone de cor / 2 struct CP OS / 2 const ponteiro de cor IC OS / 2 ícone struct PT OS / 2 ponteiro 02 2 4 bytes O tamanho do ficheiro BMP em bytes 06 6 2 bytes Reservado; valor real depende do aplicativo que cria a imagem 08 8 2 bytes Reservado; valor real depende do aplicativo que cria a imagem 0A 10 4 bytes O deslocamento, ou seja, endereço de partida, do byte, onde os dados de imagem bitmap(conjunto de pixels) pode ser encontrado. Cabeçalho DIB (cabeçalho informações bitmap) Este bloco de bytes conta as informações detalhadas sobre a aplicação da imagem, que vai ser utilizado para exibir a imagem no ecrã. O bloco também coincide com o cabeçalho usado internamente pelo Windows e OS / 2 e tem diversas variantes diferentes. Todos eles contêm um campo DWORD (32 bits), que especifica o seu tamanho, de modo a que uma aplicação pode facilmente determinar quais cabeçalho é usado na imagem. A razão pela qual existem diferentes cabeçalhos é que a Microsoft estendeu o formato DIB várias vezes. Os novos cabeçalhos prolongados pode ser usado com algumas funções GDI em vez de os mais velhos, oferecendo mais funcionalidades. Desde o GDI suporta uma função para arquivos de bitmap de carga, aplicações típicas do Windows usam essa funcionalidade. Uma consequência disto é que para essas aplicações, os formatos BMP que apoiam coincidir com os formatos suportados pela versão do Windows sendo executado. Consulte a tabela abaixo para obter mais informações. 13/08/2015 Formato de arquivo BMP Wikipédia, a enciclopédia livre https://en.wikipedia.org/wiki/BMP_file_format 5/14 Offset (hex) Offset (dec) Tamanho (bytes) OS / 2 1.x BITMAPCOREHEADER [ 3 ] 0E 14 4 O tamanho deste cabeçalho(12 bytes) 12 18 2 A largura de bitmap em pixels (não assinado de 16 bits) 14 20 2 A altura bitmap em pixels(não assinado de 16 bits) 16 22 2 O número de planos decores, deve ser 1 18 24 2 O número de bits por pixel OS / 2 1.x bitmaps são descompactados e não pode ser de 16 ou 32 bpp / 2 cabeçalhos de bitmap do Windows e OS Tamanho Nome do cabeçalho Suporte OS Características Escritopor 12 BITMAPCOREHEADER OS21XBITMAPHEADER Windows 2.0 ou posterior OS / 2 1.x [3] 64 OS22XBITMAPHEADER OS / 2 BITMAPCOREHEADER2 Adiciona meio tom . Adiciona RLE e Huffman 1D compressão. 40 BITMAPINFOHEADER Windows NT , 3.1x ou mais tarde [ 2 ] Adiciona 16 bpp e 32 bpp formatos. Adiciona compressão RLE. 52 BITMAPV2INFOHEADER Ilegal Adiciona RGB máscaras de bits. Adobe Photoshop 56 BITMAPV3INFOHEADER Não oficialmente documentado, mas esta documentação foi postada fóruns da Adobe, por um funcionário da Adobe com uma declaração de que a norma estava em um ponto no passado incluídas na documentação oficial do MS https://forums.adobe.com/message/3272950#3272950 Adiciona canal alfa máscara de bits. Adobe Photoshop 108 BITMAPV4HEADER Windows NT 4.0 , 95 ou mais tarde Adiciona tipo de espaço de cor e correção de gama 124 BITMAPV5HEADER Windows NT 5.0 , 98 ou mais tarde Adiciona perfisde cores ICC Versões após BITMAPCOREHEADER só adicionar campos para o final do cabeçalho da versão anterior. Por exemplo: BITMAPV2INFOHEADER adiciona campos para BITMAPINFOHEADER e BITMAPV3INFOHEADER adiciona campos para BITMAPV2INFOHEADER. Um canal alfa integrada foi introduzida com o BITMAPV3INFOHEADER não documentada e com a BITMAPV4HEADER documentado (desde o Windows 95 ) e é usada dentro de Windows XP logon e sistema de tema, bem como Microsoft Office (desde v2000); ele é suportado por alguns de edição de imagem de software, como Adobe Photoshop desde a versão 7 e Adobe Flash a partir da versão MX 2004 (então conhecida como Macromedia Flash). Ele também é apoiado pelo GIMP , Google Chrome , Microsoft PowerPoint e Microsoft Word . Por razões de compatibilidade, a maioria dos aplicativos usar os cabeçalhos DIB mais velhos para salvar arquivos. Com OS / 2 não mais suportado após Windows 2000, pois agora o formato comum do Windows é o cabeçalho BITMAPINFOHEADER. Ver próxima mesa para sua descrição. Todos os valores são armazenados como números inteiros sem sinal, a menos que indicado explicitamente. 13/08/2015 Formato de arquivo BMP Wikipédia, a enciclopédia livre https://en.wikipedia.org/wiki/BMP_file_format 6/14 Offset (hex) Offset (dec) Tamanho (bytes) Janelas BITMAPINFOHEADER [ 2 ] 0E 14 4 o tamanho deste cabeçalho (40 bytes) 12 18 4 a largura de bitmap em pixels (inteiro assinado) 16 22 4 a altura bitmap em pixels (inteiro assinado) 1A 26 2 o número de planos de cores deve ser 1 1C 28 2 o número de bits por pixel, a qual é a intensidade de cor da imagem. Os valores típicos sãode 1, 4, 8, 16, 24 e 32. 1E 30 4 o método de compressão a ser utilizado. Consulte a tabela seguinte para obter uma lista devalores possíveis 22 34 4 o tamanho de imagem. Este é o tamanho dos dados de mapa de bits em bruto; ummanequim 0 pode ser dada para bitmaps BI_RGB. 26 38 4 a resolução horizontal da imagem. (Pixel por metro, inteiro assinado) 2A 42 4 a resolução vertical da imagem. (Pixel por metro, inteiro assinado) 2E 46 4 o número de cores na paleta de cores, ou 0 para o padrão para 2 n 32 50 4 o número de cores usadas importantes, ou 0 quando cada cor é importante; geralmenteignorados Um OS / 2 2.x OS22XBITMAPHEADER aka BITMAPCOREHEADER2 contém 24 bytes adicionais ainda não explicado aqui. [ 3 ] O método de compressão (offset 30) pode ser: Valor Identificado por Método de compressão Comentários 0 BI_RGB nenhum Mais comum 1 BI_RLE8 RLE 8 bits / pixel Pode ser usado apenas com bitmaps / de pixel de 8 bits 2 BI_RLE4 RLE 4 bits / pixel Pode ser usado apenas com bitmaps / pixels de 4 bits 3 BI_BITFIELDS OS22XBITMAPHEADER: 1D Huffman BITMAPV2INFOHEADER: RGB máscaras de campo bit, BITMAPV3INFOHEADER + : RGBA 4 BI_JPEG OS22XBITMAPHEADER: RLE24 BITMAPV4INFOHEADER + : JPEG imagem para impressão [ 10 ] 5 BI_PNG BITMAPV4INFOHEADER + : PNG imagem para impressão [ 10 ] 6 BI_ALPHABITFIELDS RGBA máscaras de campobit única Windows CE 5.0 com .NET 4.0 ou posterior 11 BI_CMYK nenhum única Windows Metafile CMYK [ 4 ] 12 BI_CMYKRLE8 RLE8 única Windows Metafile CMYK 13 BI_CMYKRLE4 RLE4 única Windows Metafile CMYK Tabela de cores A tabela de cores (paleta) ocorre no arquivo de imagem BMP diretamente após o cabeçalho do arquivo BMP, DIB o cabeçalho (e depois de três opcionais bitmasks vermelho, verde e azul se o cabeçalho BITMAPINFOHEADER com opção BI_BITFIELDS é usado). Por conseguinte, o seu deslocamento é o tamanho do BITMAPFILEHEADER mais o tamanho do cabeçalho DIB (mais opcionais 12 bytes para os três máscaras de bits). Nota: No Windows CE BITMAPINFOHEADER o cabeçalho pode ser utilizada com o BI_ALPHABITFIELDS [6] opção na biCompression membro. O número de entradas na paleta é 2 ou N , ou um número menor especificada no cabeçalho (na / 2 formato do cabeçalho BITMAPCOREHEADER SO, apenas a palete de tamanho completo é suportado). [ 3 ][ 5 ] Na maioria dos casos, cada entrada na tabela de cor ocupa 4 bytes, no fim azul, verde, vermelho, 0x00 (veja abaixo para exceções). Este é indexado no BITMAPINFOHEADER sob a função biBitCount. 13/08/2015 Formato de arquivo BMP Wikipédia, a enciclopédia livre https://en.wikipedia.org/wiki/BMP_file_format 7/14 A tabela de cores é um bloco de bytes (um quadro) listando as cores usadas pela imagem. Cada pixel de uma imagem de cores indexadas é descrito por uma série de bits (1, 4, ou 8), que é um índicede uma única cor descrito por esta tabela. O objectivo da paleta de cores em mapas de bits de cores indexadas é informar a aplicação sobre a cor real que cada um destes valores de índice corresponde a. A finalidade da tabela de cores em (nãopalettized) bitmaps não indexados é listar as cores usadas pelo bitmap para fins de otimização de dispositivos com capacidade de exibição de cores limitada e para facilitar a futura conversão para diferentes formatos de pixel e paletization. As cores na tabela de cores são geralmente especificado no 4 bytes por entrada RGBA32 formato. A tabela de cores usado com o OS / 2 BITMAPCOREHEADER usa a 3 bytes por entrada RGB24 formato. [ 3 ][ 5 ] Para DIBs carregados na memória, a tabela de cores pode, opcionalmente, consistem em entradas de 2 bytes essas entradas constituem índices para o paleta realizado atualmente [ 8 ] , em vez de definições de cores RGB explícitas. A Microsoft não proibir a presença de uma máscara de bit de canal alfa válida [ 11 ] em BITMAPV4HEADER e BITMAPV5HEADER para 1bpp, 4bpp e 8bpp indexados imagens coloridas, o que indica que as entradas da tabela de cores também pode especificar um componente alfa usando o 8.8.8. [ 08]. [08] formato através do RGBQUAD.rgbReserved [ 12 ] membro. No entanto, algumas versões de documentação da Microsoft não permitir este recurso, afirmando que o membro RGBQUAD.rgbReserved "deve ser zero". Como mencionado acima, a tabela de cores, normalmente, não é utilizada quando os pixels são em 16 bits por pixel (16 bpp) formato (e maior); normalmente não há entradas da tabela de cor nesses arquivos de imagem bitmap. No entanto, a documentação da Microsoft (no site do MSDN a partir de 16 de novembro de 2010 [ 13 ] ) especifica que, para 16bpp (e superior), a tabela de cores pode estar presente para armazenar uma lista de cores destinase a otimização em dispositivos com limitado capacidade de exibição de cor, ao mesmo tempo que especifica que, em tais casos, não há entradas paleta indexados estão presentes nesta Tabela de cores. Isso pode parecer uma contradição, se não é feita qualquer distinção entre as entradas paleta obrigatórias ea lista cor opcional. Armazenamento Pixel Os bits representam os pixels de bitmap são embalados em linhas. O tamanho de cada linha é arredondado para um múltiplo de 4 bytes (um 32bit DWORD ) por estofamento. Para imagens com altura> 1, várias linhas acolchoadas são armazenados consecutivamente, formando um conjunto de pixels. O número total de bytes necessários para armazenar uma linha de pixels pode ser calculado como: ImageWidth é expressa em pixels. A quantidade total de bytes necessários para armazenar um conjunto de pixels de uma n bits de imagem por pixel (BPP), com 2 n cores, pode ser calculada pela representando o efeito de arredondamento até o tamanho de cada linha a um múltiplo de uma 4 bytes, como segue: ImageHeight é expressa em pixels. O valor absoluto é necessário porque ImageHeight pode ser negativo Matriz de pixels (dados de bitmap) A matriz de pixels é um bloco de DWORDs 32 bits, que descreve a imagem de pixel por pixel. Normalmente pixels são armazenados "cabeça para baixo" em relação à perpendicular imagem de exploração da retícula ordem, a partir do canto inferior esquerdo, indo da esquerda para a direita, e em seguida, linha por linha a partir do fundo para o topo da imagem. [ 5 ] A menos BITMAPCOREHEADER é usado, mapas de bits não compactados do Windows também podem ser armazenadas a partir do topo para baixo, quando o valor da Altura da imagem é negativo. No SO original / 2 DIB, os únicos quatro valores legais de profundidade de cor foram 1, 4, 8 e 24 bits por pixel (bpp). [ 5 ] cabeçalhos Contemporânea DIB permitir formatos de pixel com 1, 2, 4, 8, 16, 24 e 32 bits por pixel (bpp). [ 14 ] GDI + permite também que 64 bits por pixel. [ 15 ] 13/08/2015 Formato de arquivo BMP Wikipédia, a enciclopédia livre https://en.wikipedia.org/wiki/BMP_file_format 8/14 Bytes de enchimento (não necessariamente 0) deve ser acrescentado ao final das linhas, a fim de fazer aparecer o comprimento das linhas para um múltiplo de quatro bytes. Quando o conjunto de pixels é carregado na memória, cada linha deve começar em um endereço de memória que é um múltiplo de 4. Este endereço / restrição deslocamento é obrigatório apenas para as matrizes Pixel carregados na memória. Para fins de armazenamento de arquivos, somente o tamanho de cada linha deve ser um múltiplo de 4 bytes, enquanto o deslocamento do arquivo pode ser arbitrária. [ 5 ] Um bitmap de 24 bits com Largura = 1, teria 3 bytes de dados por linha (azul, verde, vermelho) e 1 byte de preenchimento, enquanto Largura = 2 teria 2 bytes de preenchimento, Largura = 3 teria 3 bytes de preenchimento, e Largura = 4 não teria qualquer estofamento em tudo. Compressão Indexadas imagens coloridas podem ser comprimidos com 4 bits ou 8 bits RLE ou Huffman algoritmo 1D. OS / 2 BITMAPCOREHEADER2 24bpp imagens pode ser comprimido com o algoritmo RLE 24 bits. Os 16bpp e 32bpp imagens são sempre armazenados descompactado. Notese que as imagens em todas as profundidades de cor pode ser armazenado sem compressão, se assim for desejado. Formato do pixel Em um ficheiro de imagem de mapa de bits em uma de uma imagem de mapa de bits na memória de disco ou, os pixels podem ser definidos por um número variável de bits. O 1bit por formato de pixel (1bpp) suporta duas cores distintas, (por exemplo: preto e branco). Os valores dos pixels são armazenados em cada um pouco, com o primeiro (mais à esquerda) pixel no bit mais significativo do primeiro byte. [ 5 ] Cada bit é um índice para uma tabela de duas cores. Um pouco unset irá se referir à primeira entrada da tabela de cor, e um pouco conjunto vai se referir ao último (segunda) entrada de tabela de cores. O 2 bits por pixel formato (2bpp) suporta 4 cores distintas e lojas de 4 pixels por 1 byte, o pixel mais à esquerda estar nos dois bits mais significativos ( Windows CE apenas: [ 16 ] ). Cada valor de pixel é um índice de 2 bits para uma tabela de até quatro cores. O 4 bits por pixel formato (4bpp) suporta 16 cores distintas e armazena 2 pixels por 1 byte, o pixel mais à esquerda estar no mais significativo mordidela . [ 5 ] Cada valor de pixel é um índice de 4 bits em uma tabela de até 16 cores. A 8bit por formato de pixel (8bpp) suporta 256 cores distintas e lojas de 1 pixel por 1 byte. Cada byte é um índice em uma tabela de até 256 cores. O 16 bits por pixel formato (16bpp) suporta 65.536 cores distintas e lojas de 1 pixel por palavra de 2 bytes. Cada palavra pode definir os alfa, vermelho, verde e azul amostras de pixel. O pixel formato 24bit (24bpp) suporta 16.777.216 cores e lojas distintas valor 1 pixel por 3 bytes. Cada valor de pixel define as amostras de vermelho, verde e azul do pixel (8.8.8.0.0 em notação RGBAX). Especificamente, na ordem:. Azul, verde e vermelho (8 bits por cada amostra) [ 5 ] A de 32 bits por pixel formato (32 bpp) 4294967296 suporta cores distintas e armazena 1 pixel por 4 bytes DWORD. Cada DWORD pode definir as amostras alfa, vermelho, verde e azul do pixel. A fim de resolver a ambigüidade de definir quais bits que amostras, os cabeçalhos DIB fornecer determinados padrões, bem como bitfields específicos, que são máscaras de bits que definem a composição do grupo especial de bits em um pixel para um determinado canal . O diagrama a seguir define esse mecanismo: Diag. 2 O mecanismo BitFields para um pixel de 32 bits representado na notação de comprimento de amostra RGBAX Os campos das amostras definidas pelas máscaras de bits BitFields têm que ser contíguos e não sobreposta, mas a ordem dos campos de exemplo é arbitrária. A ordem campo mais onipresente é: Alpha, Azul, Verde, Vermelho (MSB a LSB). As máscaras de bits de vermelho, verde e azul são válidos somente quando o membro de compressão do cabeçalho DIB está13/08/2015 Formato de arquivo BMP Wikipédia, a enciclopédia livre https://en.wikipedia.org/wiki/BMP_file_format 9/14 Descompactado RGB Vídeo subtipos [ 17 ] RGBAX RGB subtipo RGBAX ARGB subtipo 8.8.8.0.8 RGB32 8.8.8.8.0 ArgB32 10.10.10.2.0 A2R10G10B10 8.8.8.0.0 RGB24 10.10.10.2.0 A2B10G10R10 5.6.5.0.0 RGB565 4.4.4.4.0 ARGB4444 5.5.5.0.1 RGB555 5.5.5.1.0 ARGB1555 Bits Bits Campos de bits para bits de dez RGB [ 17 ] Campo de bits Compensar A2R10G10B10 A2B10G10R10 Vermelho 36h 00 00 F0 3F LE: 3FF00000 20 ... 29 03 00 00 FF LE: 000003FF 0 ... 9 Verde 3Ah 00 FC 0F 00 LE: 000FFC00 10 ... 19 00 FC 0F 00 LE: 000FFC00 10 ... 19 Azul 3Eh 03 00 00 FF LE: 000003FF 0 ... 9 00 00 F0 3F LE: 3FF00000 20 ... 29 Alfa 42h 00 00 00 C0 LE: C0000000 30 ... 31 00 00 00 C0 LE: C0000000 30 ... 31 definido para BI_BITFIELDS. A máscara de bits alfa é válido sempre que está presente no cabeçalho DIB ou quando o elemento de compressão do cabeçalho DIB é definido como BI_ALPHABITFIELDS [ 6 ] ( Windows CE apenas). Diag. 3 O formato do pixel com um canal alfa para um pixel de 16 bits (em RGBAX amostra Corpo notação) na verdade gerado pelo Adobe Photoshop [ 16 ] Todos os possíveis formatos de pixel em um DIB Subtipos de vídeo RGB O campo de bits mecanismo descrito acima permite a definição de dezenas de milhares diferentes formatos de pixel, no entanto, apenas alguns deles são utilizadas na prática, [ 16 ] todos os formatos palettized RGB8, RGB4, e RGB1 (marcado em amarelo na tabela acima, DShow. h nomes MEDIASUBTYPE) e: Na versão 2.1.4 FFmpeg suportado (em sua própria terminologia), a BMP formatos de pixel BGRA, bgr24, rgb565le, rgb555le, rgb444le, RGB8, bgr8, rgb4_byte, bgr4_byte, cinzento, pal8, e monob ; ou seja, BGRA foi o formato do pixel suportado apenas com transparência. [ 18 ] Exemplo 1 Seguese um exemplo de um 2 × 2 pixel, 24bit bitmap (Windows DIB cabeçalho BITMAPINFOHEADER) com formato de pixel RGB24. 13/08/2015 Formato de arquivo BMP Wikipédia, a enciclopédia livre https://en.wikipedia.org/wiki/BMP_file_format 10/14 Exemplo 1 de um pixel bitmap 2 × 2, com 24 bits / codificação de pixels Compensar Tamanho ValorHex Valor Descrição BMP Header 0h 2 42 4D "BM" Campo ID (42h, 4Dh) 2h 4 46 00 00 00 70 bytes (54 + 16) Tamanho do arquivo BMP 6h 2 00 00 Não usado Aplicação específica 8h 2 00 00 Não usado Aplicação específica Ah 4 36 00 00 00 54 bytes (14 + 40) Deslocamento onde a matriz de pixel (mapa de bits dedados) podem ser encontrados DIB Header Eh 4 28 00 00 00 40 bytes Número de bytes de cabeçalho DIB (a partir deste ponto) 12h 4 02 00 00 00 2 pixels (esquerda para a direita) Largura do bitmap em pixels 16h 4 02 00 00 00 2 pixels (inferiores a ordem de cima) Altura do bitmap em pixels. Positivo para baixo para fim de pixel superior. 1Ah 2 01 00 1 avião Número de planos de cor a ser utilizada 1Cr 2 18 00 24 bits Número de bits por pixel 1Eh 4 00 00 00 00 0 BI_RGB, sem compressão matriz de pixel utilizados 22h 4 10 00 00 00 16 bytes Tamanho dos dados de bitmap em bruto (incluindo estofamento) 13/08/2015 Formato de arquivo BMP Wikipédia, a enciclopédia livre https://en.wikipedia.org/wiki/BMP_file_format 11/14 26h 4 13 0B 00 00 2835 pixels / horizontal metros A resolução de impressão da imagem, 72 DPI × 39,3701 polegadas por rendimentos metros 2834,6472 2Ah 4 13 0B 00 00 2835 pixels / metro verticais 2eh 4 00 00 00 00 0 cores Número de cores na paleta 32h 4 00 00 00 00 0 cores importantes 0 significa que todas as cores são importantes Início da matriz de pixels (dados de bitmap) 36h 3 00 00 FF 0 0 255 Vermelho, Pixel (0,1) 39h 3 FF FF FF 255 255 255 Branco, Pixel (1,1) 3Ch 2 00 00 0 0 Preenchimento para alinhamento byte 4 (poderia ser umvalor diferente de zero) 3Eh 3 00 00 FF 255 0 0 Azul, Pixel (0,0) 41h 3 00 FF 00 0 255 0 Verde, Pixel (1,0) 44h 2 00 00 0 0 Preenchimento para alinhamento byte 4 (poderia ser umvalor diferente de zero) Exemplo 2 de um pixel bitmap 4 × 2, com 32 bits / codificação de pixels Exemplo 2 Seguese um exemplo de um 4 × 2 pixel, bitmap de 32 bits com valores de opacidade do canal alfa (Windows DIB Header BITMAPV4HEADER) com formato de pixel ArgB32. Compensar Tamanho ValorHex Valor Descrição BMP Header 0h 2 42 4D "BM" Campo ID (42h, 4Dh) 2h 4 9A 00 00 00 154 bytes (122 + 32) Tamanho do arquivo BMP 6h 2 00 00 Não usado Aplicação específica 8h 2 00 00 Não usado Aplicação específica Ah 4 7A 00 00 00 122 bytes (14 + 108) Deslocamento onde a matriz de pixel (mapa de bits dedados) podem ser encontrados DIB Header Eh 4 6C 00 00 00 108 bytes Número de bytes de cabeçalho DIB (a partir desteponto) 04 00 4 pixels (esquerda 13/08/2015 Formato de arquivo BMP Wikipédia, a enciclopédia livre https://en.wikipedia.org/wiki/BMP_file_format 12/14 12h 4 00 00 para a direita) Largura do bitmap em pixels 16h 4 02 00 00 00 2 pixels (inferiores a ordem de cima) Altura do bitmap em pixels 1Ah 2 01 00 1 avião Número de planos de cor a ser utilizada 1Cr 2 20 00 32 bits Número de bits por pixel 1Eh 4 03 00 00 00 3 BI_BITFIELDS, sem compressão matriz de pixelutilizados 22h 4 20 00 00 00 32 bytes Tamanho dos dados de bitmap em bruto (incluindoestofamento) 26h 4 13 0B 00 00 2835 pixels / horizontal metros A resolução de impressão da imagem, 72 DPI × 39,3701 polegadas por rendimentos metros 2834,64722Ah 4 13 0B 00 00 2835 pixels / metro verticais 2eh 4 00 00 00 00 0 cores Número de cores na paleta 32h 4 00 00 00 00 0 cores importantes 0 significa que todas as cores são importantes 36h 4 00 00 00 FF 00FF0000 em big endian Máscara de bit de canal vermelho (válido porque BI_BITFIELDS é especificado) 3Ah 4 00 00 00 FF 0000FF00 em big endian Máscara de bit de canal verde (válido porque BI_BITFIELDS é especificado) 3Eh 4 00 00 00 FF 000000FF em big endian Máscara de bit de canal Blue (válido porque BI_BITFIELDS é especificado) 42h 4 00 00 00 FF FF000000 em big endian Alpha máscara de bit de canal 46h 4 20 69 57 6E littleendian " Win " LCS_WINDOWS_COLOR_SPACE 4ah 24h 24 * 00 ... 00 Endpoints espaço CIEXYZTRIPLE Cor Sem uso por LCS " Win "ou" sRGB " 6EH 4 00 00 00 00 0 Red Gamma Sem uso por LCS " Win "ou" sRGB " 72h 4 00 00 00 00 0 Verde Gamma Sem uso por LCS " Win "ou" sRGB " 76h 4 00 00 00 00 0 azul Gamma Sem uso por LCS " Win "ou" sRGB " Início da matriz Pixel (os dados de bitmap) 7Ah 4 00 00 7F FF 255 0 0 127 Blue (Alpha: 127), Pixel (0,1) 7EH 4 7F FF 00 00 0 255 0 127 Green (Alpha: 127), Pixel (1,1) 82h 4 00 00 FF 7F 0 0 255 127 Red (Alpha: 127), Pixel (2,1) 86h 4 FF FF FF 7F 255 255 255 127 Branco (Alpha: 127), Pixel (3,1) 8Ah 4 FF 00 00 FF 255 0 0 255 Blue (Alpha: 255), Pixel (0,0) 8EH 4 FF 00 FF 00 0 255 0 255 Green (Alpha: 255), Pixel (1,0) 92H 4 00 00 FF FF 0 0 255 255 Red (Alpha: 255), Pixel (2,0) 96h 4 FF FF FF FF 255 255 255 255 Branco (Alpha: 255), Pixel (3,0) Notese que os dados de mapa de bits começa com o canto inferior esquerdo da imagem. Uso de formato BMP 13/08/2015 Formato de arquivo BMP Wikipédia, a enciclopédia livre https://en.wikipedia.org/wiki/BMP_file_format 13/14 A simplicidade do formato de arquivo BMP, e sua familiaridade generalizada no Windows e em outros lugares, bem como o fato de que este formato é relativamente bem documentada e livre de patentes, o torna um formato muito comum que os programas de processamento de imagem de muitos sistemas operacionais pode ler e gravação. ICO arquivos CUR e conter bitmaps começando com um BITMAPINFOHEADER. Muitos idososinterfaces gráficas de usuário usado bitmaps em seus subsistemas gráficos embutidos; [ 19 ] , por exemplo, o Microsoft Windows e OS / 2 plataformas ' GDI subsistema, onde o formato específico utilizado é o formato de arquivo de bitmap OS / 2 do Windows e , normalmente nomeada com a extensão de arquivo de bmp . [ 20 ] Enquanto a maioria dos arquivos BMP tem uma relativamente grande tamanho do arquivo devido à falta de qualquer compressão (ou geralmente baixo rácio de codificação runlength em imagens paletizadas), muitos arquivos BMP pode ser comprimido consideravelmente com compressão de dados sem perdas algoritmos como ZIP , pois eles contêm redundante dados. Alguns formatos, como RAR , até mesmo incluir rotinas especificamente orientadas para compressão eficiente de tais dados. Formatos relacionados Ver artigo principal: formatos de arquivo de imagem O Sistema X Window utiliza um semelhante XBM formato para imagens em pretoebranco, e XPM ( pixelmap ) para imagens coloridas. Há também uma variedade de formatos "brutos", que salvar dados brutos, sem outras informações. O portable pixmap (PPM) e Truevision TGA formatos também existem, mas são menos frequentemente utilizados ou apenas para fins especiais; por exemplo, TGA pode conter informações de transparência. Referências Ligações externas 1. .bmp MIME tipo não registrado (http://www.iana.org/assignments/mediatypes/mediatypes.xhtml#image) no IANA 2. . James D. Murray, William vanRyper (Abril de 1996) "Enciclopédia de gráficos Formatos de arquivo, Segunda Edição" (http://www.fileformat.info/format/bmp/egff.htm) . O'Reilly . bmp. ISBN 1565921615 . Retirado 2014/03/07 . 3. James D. Murray, William vanRyper (Abril de 1996). "Enciclopédia de gráficos formatos de arquivo, Segunda Edição" (http://www.fileformat.info/format/os2bmp/egff.htm) . O'Reilly . os2bmp. ISBN 1565921615 . Retirado 2014/03/07 . 4. "[MSWMF]: Windows Metafile Format" (http://msdn.microsoft.com/enus/library/cc250370.aspx) . MSDN . 2014/02/13 . Retirado 2014/03/12 . 5. "DIBs e seus usos" (https://msdn.microsoft.com/enus/library/ms969901.aspx) . Microsoft Ajuda e Suporte . Retirado 2015/05/14 . 6. MSDN BITMAPINFOHEADER (Windows CE 5.0): membro BI_ALPHABITFIELDS em biCompression (http://msdn.microsoft.com/enus/library/aa452885.aspx) 7. MSDN Tipos Bitmap cabeçalho (http://msdn.microsoft.com/enus/library/dd183386%28VS.85%29.aspx) 8. MSDN BITMAPINFO Estrutura (http://msdn.microsoft.com/enus/library/dd183375%28VS.85%29.aspx) 9. Feng Yuan programação de gráficos do Windows: Win32 GDI e DirectDraw: Embalado Bitmap independente de dispositivo (CreateDIBPatternBrush, CreateDIBPatternBrushPt, FindResource, LoadResource, LockResource) (http://books.google.com/books? id=O92IIF1Bj4C&pg=PA595) 10. "JPEG e PNG Extensions para funções específicas de bitmap e Estruturas" (http://msdn.microsoft.com/en us/library/dd145023(VS.85).aspx) . 11. MSDN BITMAPV4HEADER: O membro bV4AlphaMask (http://msdn.microsoft.com/en us/library/dd183380%28VS.85%29.aspx) 12. MSDN RGBQUAD: membro rgbReserved (http://msdn.microsoft.com/enus/library/dd162938%28VS.85%29.aspx) 13. veja nota sob biClrUsed MSDN BITMAPINFOHEADER (http://msdn.microsoft.com/en us/library/windows/desktop/dd183376(v=vs.85).aspx) 14. MSDN BITMAPINFOHEADER: O membro biBitCount (http://msdn.microsoft.com/enus/library/dd183376%28VS.85%29.aspx) 15. "Tipos de bitmaps" (http://msdn.microsoft.com/enus/library/ms536393(v=vs.85).aspx) . MSDN . 20120603 . Retirado 2014/03/16 . 16. MSDN: Windows CE Estrutura BITMAPINFOHEADER (http://msdn.microsoft.com/enus/library/ms959648.aspx) 17. "nãocomprimidos de vídeo RGB subtipos" (http://msdn.microsoft.com/enus/library/windows/desktop/dd407253(v=vs.85).aspx) . dshow.h . MSDN . Retirado 2014/03/11 . 18. "Formatos de imagem" (http://www.ffmpeg.org/general.html#ImageFormats) . FFmpeg Documentação Geral . 2014 . Retirado 2014/02/23 . 19. Julian inteligente, Stefan Csömör, e Kevin Hock (2006). Programação PlatformCross GUI com wxWidgets (http://books.google.com/books?id=CyMsvtgnq0QC&pg=PA265&dq=bitmap+pixmap+gui) . Prentice Hall. ISBN 0131473816 . 20. "Bitmap arquivo de imagem (BMP), Versão 5" (http://www.digitalpreservation.gov/formats/fdd/fdd000189.shtml) . preservação digital . Biblioteca do Congresso . 2014/01/08 . Retirado 2014/03/11 . 13/08/2015 Formato de arquivo BMP Wikipédia, a enciclopédia livre https://en.wikipedia.org/wiki/BMP_file_format 14/14 Estrutura de arquivos bitmap (http://www.digicamsoft.com/bmp/bmp.html) , em digicamsoft.com Uma introdução à DIBs (bitmaps independentes de dispositivo) (http://www.herdsoft.com/ti/davincie/imex3j8i.htm) , na herdsoft.com Extensão de arquivo DIB (http://www.extension.info/fileextensiondib) , lista de software para trabalhar com arquivos DIB Um simples carregador de bitmap classe C ++ (http://www.kalytta.com/bitmap.h) , no kalytta.com (A2R10G10B10 ainda não suportado) O formato de arquivo BMP, Part 1 por David Charlap (http://drdobbs.com/architectureanddesign/184409517) no jornal do Dr. Dobb de ferramentas de software (drdobbs.com), março 1995 Retirado de " https://en.wikipedia.org/w/index.php?title=BMP_file_format&oldid=673282671 " Categorias : Gráficos formatos de arquivo Tecnologia multimídia Microsoft Windows Esta página foi modificada pela última vez em 27 de julho de 2015, em 10:01. O texto está disponível sob a Licença Creative Commons AtribuiçãoCompartilhamento pela mesma ; podem aplicar se termos adicionais. Ao utilizar este site, você concorda com os Termos de Uso e Política de Privacidade . Wikipédia é uma marca comercial registrada da Wikimedia Foundation, Inc. , uma organização sem fins lucrativos.