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 de campo de cabeçalho adicionais

DWORD Compression
Permite formatos brutos compactados, como o NEF compactado da Nikon e 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.

Compression Examples:

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.

For more information on the WIA compression constants, see the WIA_IPA_COMPRESSION property.

DWORD PhotometricInterp
Descreve a interpretação fotométrica da 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 (onde branco é 1, preto é 0) ou WIA_PHOTO_WHITE_0 (onde branco é 0, preto é 1). Esse campo é opcional para imagens coloridas.

DWORD LineOrder
Descreve se as linhas/linhas nos dados da imagem são ordenadas de cima para baixo ou de baixo para cima. Two new constants were defined in wiadef.h for this:

#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 only matters when executing image data transfers.

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 suposta transferência de imagem 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 é digitalizada 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 à forma como os campos XExtent e YExtent são tratados.

DWORD PaletteOffset
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 de imagem bruta podem seguir o cabeçalho bruto em qualquer ordem e a paleta pode ser omitida quando não for necessário.

DWORD PaletteSize
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.

Black and white and grayscale data can omit the palette (because the information required to build the palette is contained in the PhotometricInterpretation field) or supply an optimized palette along with the PhotometricInterpretation field.

For indexed images, the number of entries in the color palette is dictated by the current BitsPerPixel value (2 ^ BitsPerPixel. For example, 2 entries for 1bpp, 16 entries for 4bpp, 256 entries for 8bpp). The format of the palette entries would be dictated by the number of entries in BitsPerChannel field (the number of fields/channels in each palette entry) and BitsPerChannel values (each field would contain exactly the value specified in the BitsPerChannel field for the respective channel). Cada campo de entrada de paleta deve estar alinhado a BYTE.