Partilhar via


Cabeçalho de dados WIA RAW

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

DWORD Compression
Permite formatos raw comprimidos, como o NEF comprimido da Nikon e dados comprimidos sem cabeçalho utilizados para transmissões de fax comprimido (Grupo 3.1, 3.2d, 4). Os valores para este campo seriam constantes WIA_IPA_COMPRESSION, possivelmente específicas do fornecedor para aplicações especializadas. 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) dentro de 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 para a imagem que é transferida. Este campo é obrigatório para imagens a preto e branco (1bpp) e em tons de cinzento (4bpp ou mais). Essas imagens precisam indicar os valores para branco e preto, WIA_PHOTO_WHITE_1 (onde branco é 1, preto é 0) ou WIA_PHOTO_WHITE_0 (onde branco é 0, preto é 1). Este 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. Esta 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 (não incluindo a paleta de cores opcional). Os aplicativos podem usar este campo para verificar a conclusão de uma suposta transferência de imagem bem-sucedida. Quando esta informação é desconhecida 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 deteção automática de borda - o minidriver deve ser obrigado a preencher este campo no final da transferência de dados de imagem, semelhante a como os campos XExtent e YExtent são tratados.

DWORD PaletteOffset
Contém o deslocamento, em bytes onde a paleta de cores começa no fluxo de dados; Este deslocamento começa (na posição zero) onde 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ária.

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. Este campo não está relacionado com o 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 da paleta deve estar alinhado com BYTE.