Encabezado de datos RAW de WIA
El encabezado de los datos RAW es el siguiente:
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)
Descripciones adicionales del campo de encabezado
Compresión DWORD
Permite formatos comprimidos sin procesar, como nef comprimido de Nikon y datos comprimidos sin encabezado usados para transmisiones de fax comprimidas (Grupo 3.1, 3.2d, 4). Los valores de este campo serían WIA_IPA_COMPRESSION constantes, posiblemente específicas del proveedor para las aplicaciones especializadas. El valor predeterminado es WIA_COMPRESSION_NONE.
Ejemplos de compresión:
Los datos comprimidos G4 (WIA_COMPRESSION_G4) se pueden transferir dentro de un archivo TIFF (WiaImgFmt_TIFF) o mediante el formato sin procesar (WiaImgFmt_RAW).
Los datos comprimidos JPEG (WIA_COMPRESSION_JPEG) se pueden transferir mediante el formato JFIF (WiaImgFmt_JPEG), el formato EEXIF (WiaImgFmt_EXIF) o el formato TIFF (WiaImgFmt_TIFF). No es posible transferir datos JPEG con formato en uno de los formatos de intercambio (JFIF, EEXIF) dentro de las transferencias mediante el formato sin formato (WiaImgFmt_RAW), sino que es necesario usar uno de los otros formatos compatibles con JPEG.
Para obtener más información sobre las constantes de compresión WIA, consulte la propiedad WIA_IPA_COMPRESSION .
DWORD PhotometricInterp
Describe la interpretación fotométrica de la imagen que se transfiere. Este campo es necesario para imágenes en blanco y negro (1bpp) y escala de grises (4bpp o más). Estas imágenes deben indicar los valores de blanco y negro, ya sea WIA_PHOTO_WHITE_1 (donde blanco es 1, negro es 0) o WIA_PHOTO_WHITE_0 (donde blanco es 0, negro es 1). Este campo es opcional para las imágenes de color.
LineOrder DWORD
Describe si las líneas o filas de los datos de la imagen se ordenan de arriba a abajo o de abajo a arriba. Se definieron dos constantes nuevas en wiadef.h para esto:
#define WIA_LINE_ORDER_TOP_TO_BOTTOM 0x00000001
#define WIA_LINE_ORDER_BOTTOM_TO_TOP 0x00000002
No hay ninguna nueva propiedad definida para esto. Esta no es una configuración de examen configurable. LingOrder solo importa al ejecutar transferencias de datos de imagen.
DWORD RawDataSize
Indica el tamaño, en bytes, de los datos sin procesar que siguen al encabezado (no incluida la paleta de colores opcional). Las aplicaciones podrían usar este campo para comprobar la finalización de una transferencia de imagen correcta presuponeda. Cuando esta información es desconocida para el minidriver en el momento en que comienza la transferencia (y el encabezado se escribe en la secuencia), por ejemplo, cuando la imagen se examina mediante la detección automática de bordes, se debe requerir que el minidriver rellene este campo al final de la transferencia de datos de imagen, similar a cómo se controlan los campos XExtent e YExtent.
Paleta DWORDOffset
Contiene el desplazamiento, en bytes donde comienza la paleta de colores en el flujo de datos; este desplazamiento comienza (en la posición cero) donde finaliza el encabezado. Los datos de la paleta y la imagen sin procesar pueden seguir el encabezado sin procesar en cualquier orden y la paleta se puede omitir cuando no sea necesario.
Paleta de DWORDSize
Contiene el tamaño, en bytes, de la paleta de colores. Cuando no es necesario adjuntar ninguna paleta a los datos de imagen sin procesar, minidriver debe establecer este campo en 0. Este campo no está relacionado con el número de entradas de la paleta.
Los datos en blanco y blanco y en escala de grises pueden omitir la paleta (porque la información necesaria para crear la paleta está contenida en el campo PhotometricInterpretation ) o proporcionar una paleta optimizada junto con el campo PhotometricInterpretation .
En el caso de las imágenes indizada, el número de entradas de la paleta de colores viene determinada por el valor de BitsPerPixel actual (2 ^ BitsPerPixel. Por ejemplo, 2 entradas para 1bpp, 16 entradas para 4bpp, 256 entradas para 8bpp). El formato de las entradas de paleta sería dictado por el número de entradas en el campo BitsPerChannel (el número de campos o canales en cada entrada de paleta) y los valores de BitsPerChannel (cada campo contendrá exactamente el valor especificado en el campo BitsPerChannel para el canal respectivo). Cada campo de entrada de paleta debe estar alineado con BYTE.