Compartilhar via


Cabeçalho de dados RAW do WIA

O cabeçalho para dados RAW é o seguinte:

DWORD Tag;         // must contain 'WRAW' (single byte ASCII characters)
DWORD Version;        // must contain 0x00010000
DWORD HeaderSize;       // contains amount of valid bytes in header
DWORD XRes;              // X (horizontal) resolution, in DPI
DWORD YRes;              // Y (vertical) resolution, in DPI
DWORD XExtent;           // image width, in pixels
DWORD YExtent;           // image height, in pixels
DWORD BytesPerLine;      // used only for uncompressed image data, 0 (unknown) for compressed data 
DWORD BitsPerPixel;      // number of bits per pixel (all channels)
DWORD ChannelsPerPixel;  // number of color channels (samples) within a pixel
DWORD DataType;    // current WIA_IPA_DATATYPE value describing the image
BYTE  BitsPerChannel[8]; // up to 8 channels per pixel, use as many as needed  
DWORD Compression;       // current WIA_IPA_COMPRESSION value
DWORD PhotometricInterp; // current WIA_IPS_PHOTOMETRIC_INTERP value
DWORD LineOrder;         // image line order as a WIA_LINE_ORDER value
DWORD RawDataOffset;     // offset position (in bytes, starting from 0) for the raw image data
DWORD RawDataSize;       // size of raw image data, in bytes
DWORD PaletteOffset;     // offset position (in bytes, starting from 0) for the palette (0 if none)
DWORD PaletteSize;       // size, in bytes, of color palette table (0 if no palette is required) 

Descrições adicionais do campo de cabeçalho

Compactação DWORD
Permite formatos brutos compactados, como o NEF compactado da Nikon e os dados compactados sem cabeçalho usados para transmissões de fax compactadas (Grupo 3.1, 3.2d, 4). Os valores desse campo seriam WIA_IPA_COMPRESSION constantes, possivelmente específicas do fornecedor para aplicativos especializados. O valor padrão é WIA_COMPRESSION_NONE.

Exemplos de compactação:

Os dados compactados G4 (WIA_COMPRESSION_G4) podem ser transferidos dentro de um arquivo TIFF (WiaImgFmt_TIFF) ou usando o formato bruto (WiaImgFmt_RAW).

Os dados compactados jpeg (WIA_COMPRESSION_JPEG) podem ser transferidos usando o formato JFIF (WiaImgFmt_JPEG), o formato EEXIF (WiaImgFmt_EXIF) ou o formato TIFF (WiaImgFmt_TIFF). Não é possível transferir dados JPEG formatados em um dos Formatos de Intercâmbio (JFIF, EEXIF) em transferências usando o formato bruto (WiaImgFmt_RAW) – em vez disso, é necessário usar um dos outros formatos compatíveis com JPEG.

Para obter mais informações sobre as constantes de compactação WIA, consulte a propriedade WIA_IPA_COMPRESSION .

DWORD PhotometricInterp
Descreve a interpretação fotométrica para a imagem transferida. Esse campo é necessário para imagens em preto e branco (1bpp) e escala de cinza (4bpp ou mais). Essas imagens precisam indicar os valores para branco e preto, seja WIA_PHOTO_WHITE_1 (em que branco é 1, preto é 0) ou WIA_PHOTO_WHITE_0 (em que branco é 0, preto é 1). Esse campo é opcional para imagens coloridas.

LineOrder DWORD
Descreve se as linhas/linhas nos dados de imagem são ordenadas de cima para baixo ou de baixo para cima. Duas novas constantes foram definidas em wiadef.h para isso:

#define  WIA_LINE_ORDER_TOP_TO_BOTTOM        0x00000001 
#define  WIA_LINE_ORDER_BOTTOM_TO_TOP        0x00000002

Não há nenhuma nova propriedade definida para isso. Essa não é uma configuração de verificação configurável. LingOrder só importa ao executar transferências de dados de imagem.

DWORD RawDataSize
Indica o tamanho, em bytes, dos dados brutos após o cabeçalho (sem incluir a paleta de cores opcional). Os aplicativos podem usar esse campo para verificar a conclusão de uma transferência de imagem presumidamente bem-sucedida. Quando essas informações são desconhecidas para o minidriver no momento em que a transferência começa (e o cabeçalho é gravado no fluxo) - por exemplo, quando a imagem é verificada usando a detecção automática de borda - o minidriver deve ser necessário para preencher esse campo no final da transferência de dados de imagem, semelhante a como os campos XExtent e YExtent são tratados.

Paleta DWORDOffset
Contém o deslocamento, em bytes em que a paleta de cores começa no fluxo de dados; esse deslocamento começa (na posição zero) em que o cabeçalho termina.. A paleta e os dados brutos da imagem podem seguir o cabeçalho bruto em qualquer ordem e a paleta pode ser omitida quando não for necessário.

Paleta DWORDSize
Contém o tamanho, em bytes, da paleta de cores. Quando nenhuma paleta é necessária para ser anexada aos dados brutos da imagem, o minidriver deve definir esse campo como 0. Esse campo não está relacionado ao número de entradas na paleta.

Os dados em preto e branco e em escala de cinza podem omitir a paleta (porque as informações necessárias para compilar a paleta estão contidas no campo PhotometricInterpretation ) ou fornecer uma paleta otimizada junto com o campo PhotometricInterpretation .

Para imagens indexadas, o número de entradas na paleta de cores é ditado pelo valor bitsPerPixel atual (2 ^ BitsPerPixel. Por exemplo, 2 entradas para 1bpp, 16 entradas para 4bpp, 256 entradas para 8bpp). O formato das entradas de paleta seria determinado pelo número de entradas no campo BitsPerChannel (o número de campos/canais em cada entrada de paleta) e valores BitsPerChannel (cada campo conteria exatamente o valor especificado no campo BitsPerChannel para o respectivo canal). Cada campo de entrada de paleta deve estar alinhado a BYTE.