Compartilhar via


Função GetDIBits (wingdi.h)

A função GetDIBits recupera os bits do bitmap compatível especificado e os copia em um buffer como um DIB usando o formato especificado.

Sintaxe

int GetDIBits(
  [in]      HDC          hdc,
  [in]      HBITMAP      hbm,
  [in]      UINT         start,
  [in]      UINT         cLines,
  [out]     LPVOID       lpvBits,
  [in, out] LPBITMAPINFO lpbmi,
  [in]      UINT         usage
);

Parâmetros

[in] hdc

Um identificador para o contexto do dispositivo.

[in] hbm

Um identificador para o bitmap. Deve ser um DDB (bitmap) compatível.

[in] start

A primeira linha de verificação a ser recuperada.

[in] cLines

O número de linhas de verificação a serem recuperadas.

[out] lpvBits

Um ponteiro para um buffer para receber os dados de bitmap. Se esse parâmetro for NULL, a função passará as dimensões e o formato do bitmap para a estrutura BITMAPINFO apontada pelo parâmetro lpbmi .

[in, out] lpbmi

Um ponteiro para uma estrutura BITMAPINFO que especifica o formato desejado para os dados DIB.

[in] usage

O formato do membro bmiColors da estrutura BITMAPINFO . Deve ser um dos valores a seguir.

Valor Significado
DIB_PAL_COLORS
A tabela de cores deve consistir em uma matriz de índices de 16 bits na paleta lógica atual.
DIB_RGB_COLORS
A tabela de cores deve consistir em valores RGB (vermelho literal, verde, azul).

Valor retornado

Se o parâmetro lpvBits não for NULL e a função for bem-sucedida, o valor retornado será o número de linhas de verificação copiadas do bitmap.

Se o parâmetro lpvBits for NULL e GetDIBits preencher com êxito a estrutura BITMAPINFO , o valor retornado não será zero.

Se a função falhar, o valor retornado será zero.

Essa função pode retornar o valor a seguir.

Código de retorno Descrição
ERROR_INVALID_PARAMETER
Um ou mais dos parâmetros de entrada são inválidos.

Comentários

Se o formato solicitado para o DIB corresponder ao formato interno, os valores RGB para o bitmap serão copiados. Se o formato solicitado não corresponder ao formato interno, uma tabela de cores será sintetizada. A tabela a seguir descreve a tabela de cores sintetizada para cada formato.

Valor Significado
1_BPP A tabela de cores consiste em uma entrada preta e branca.
4_BPP A tabela de cores consiste em uma combinação de cores idênticas à paleta de VGA padrão.
8_BPP A tabela de cores consiste em uma combinação geral de 256 cores definidas pela GDI. (Incluídas nessas 256 cores estão as 20 cores encontradas na paleta lógica padrão.)
24_BPP Nenhuma tabela de cores é retornada.
 

Se o parâmetro lpvBits for um ponteiro válido, os seis primeiros membros da estrutura BITMAPINFOHEADER deverão ser inicializados para especificar o tamanho e o formato do DIB. As linhas de verificação devem ser alinhadas em um DWORD , exceto para bitmaps compactados RLE.

Um DIB de baixo para cima é especificado definindo a altura como um número positivo, enquanto um DIB de cima para baixo é especificado definindo a altura como um número negativo. A tabela de cores bitmap será acrescentada à estrutura BITMAPINFO .

Se lpvBits for NULL, GetDIBits examinará o primeiro membro da primeira estrutura apontada por lpbi. Esse membro deve especificar o tamanho, em bytes, de uma estrutura BITMAPCOREHEADER ou BITMAPINFOHEADER . A função usa o tamanho especificado para determinar como os membros restantes devem ser inicializados.

Se lpvBits for NULL e o membro de contagem de bits de BITMAPINFO for inicializado como zero, GetDIBits preencherá uma estrutura BITMAPINFOHEADER ou BITMAPCOREHEADER sem a tabela de cores. Essa técnica pode ser usada para consultar atributos de bitmap.

O bitmap identificado pelo parâmetro hbmp não deve ser selecionado em um contexto de dispositivo quando o aplicativo chama essa função.

A origem de um DIB de baixo para cima é o canto inferior esquerdo do bitmap; a origem de um DIB de cima para baixo é o canto superior esquerdo.

Exemplos

Para obter um exemplo, consulte Capturando uma imagem.

Requisitos

   
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho wingdi.h (inclua Windows.h)
Biblioteca Gdi32.lib
DLL Gdi32.dll

Confira também

BITMAPCOREHEADER

BITMAPINFO

BITMAPINFOHEADER

Funções bitmap

Visão geral do Bitmaps

Setdibits