Freigeben über


WIA-RAW-Datenheader

Der Header für RAW-Daten lautet wie folgt:

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) 

Zusätzliche Kopfzeilenfeldbeschreibungen

DWORD Compression
Ermöglicht komprimierte Rohformate, wie z. B. die komprimierten NEF- und headerlosen komprimierten Daten von Nikon, die für komprimierte Faxübertragungen verwendet werden (Gruppe 3.1, 3.2d, 4). Werte für dieses Feld wären WIA_IPA_COMPRESSION Konstanten, möglicherweise anbieterspezifisch für spezialisierte Anwendungen. Der Standardwert ist WIA_COMPRESSION_NONE.

Compression Examples:

G4 komprimierte Daten (WIA_COMPRESSION_G4) können entweder in einer TIFF-Datei (WiaImgFmt_TIFF) oder mit dem rohen Format (WiaImgFmt_RAW) übertragen werden.

JPEG-komprimierte Daten (WIA_COMPRESSION_JPEG) können entweder mit dem JFIF-Format (WiaImgFmt_JPEG), dem EEXIF-Format (WiaImgFmt_EXIF) oder dem TIFF-Format (WiaImgFmt_TIFF) übertragen werden. Es ist nicht möglich, JPEG-Daten, die in einem der Interchange Formats (JFIF, EEXIF) formatiert sind, in Übertragungen mit dem Rohformat (WiaImgFmt_RAW) zu übertragen . Stattdessen ist es notwendig, eines der anderen JPEG-kompatiblen Formate zu verwenden.

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

DWORD PhotometricInterp
Beschreibt die photometrische Interpretation des übertragenen Bilds. Dieses Feld ist für Schwarzweißbilder (1 Tb) und Graustufen (4 Tb) erforderlich. Diese Bilder müssen die Werte für Weiß und Schwarz angeben, entweder WIA_PHOTO_WHITE_1 (wobei Weiß 1, Schwarz ist 0) oder WIA_PHOTO_WHITE_0 (wobei Weiß 0 ist, Schwarz ist 1). Dieses Feld ist für Farbbilder optional.

DWORD LineOrder
Beschreibt, ob die Zeilen/Zeilen in den Bilddaten von oben nach unten oder von unten nach oben angeordnet sind. 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

Dafür ist keine neue Eigenschaft definiert. Dies ist keine konfigurierbare Scaneinstellung. LingOrder only matters when executing image data transfers.

DWORD RawDataSize
Gibt die Größe der Rohdaten in Bytes nach dem Header an (nicht einschließlich der optionalen Farbpalette). Anwendungen können dieses Feld verwenden, um den Abschluss einer angenommenen erfolgreichen Bildübertragung zu überprüfen. Wenn diese Informationen dem Minidriver zum Zeitpunkt des Beginns der Übertragung nicht bekannt sind (und die Kopfzeile in den Datenstrom geschrieben wird) – z. B. wenn das Bild mithilfe der automatischen Rahmenerkennung gescannt wird – sollte der Minidriver zum Ausfüllen dieses Felds am Ende der Bilddatenübertragung erforderlich sein, ähnlich wie die Felder XExtent und YExtent verarbeitet werden.

DWORD PaletteOffset
Enthält den Offset in Bytes, in denen die Farbpalette im Datenstrom beginnt; dieser Offset beginnt (an Position Null), wobei die Kopfzeile endet. Die Paletten- und Rohbilddaten können der rohen Kopfzeile in beliebiger Reihenfolge folgen, und die Palette kann bei Bedarf weggelassen werden.

DWORD PaletteSize
Enthält die Größe der Farbpalette in Byte. Wenn keine Palette an die Rohbilddaten angefügt werden muss, sollte minidriver dieses Feld auf 0 festlegen. Dieses Feld ist nicht mit der Anzahl der Einträge in der Palette verknüpft.

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). Jedes Paletteneintragsfeld muss BYTE-ausgerichtet sein.