summaryrefslogtreecommitdiff
path: root/archive/tools/rasterfile.h
blob: d9943d7ea272d17c1ad03860860d634654ad7204 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include "tiff.h"

/*
 * Description of header for files containing raster images
 */
struct rasterfile
{
    char ras_magic[4];     /* magic number */
    int32_t ras_width;     /* width (pixels) of image */
    int32_t ras_height;    /* height (pixels) of image */
    int32_t ras_depth;     /* depth (1, 8, or 24 bits) of pixel */
    int32_t ras_length;    /* length (bytes) of image */
    int32_t ras_type;      /* type of file; see RT_* below */
    int32_t ras_maptype;   /* type of colormap; see RMT_* below */
    int32_t ras_maplength; /* length (bytes) of following map */
    /* color map follows for ras_maplength bytes, followed by image */
};
#define RAS_MAGIC "\x59\xa6\x6a\x95"
#define RAS_MAGIC_INV "\x95\x6a\xa6\x59"

/* Sun supported ras_type's */
#define RT_OLD 0               /* Raw pixrect image in 68000 byte order */
#define RT_STANDARD 1          /* Raw pixrect image in 68000 byte order */
#define RT_BYTE_ENCODED 2      /* Run-length compression of bytes */
#define RT_EXPERIMENTAL 0xffff /* Reserved for testing */

/* Sun registered ras_maptype's */
#define RMT_RAW 2
/* Sun supported ras_maptype's */
#define RMT_NONE 0      /* ras_maplength is expected to be 0 */
#define RMT_EQUAL_RGB 1 /* red[ras_maplength/3],green[],blue[] */

/*
 * NOTES:
 * 	Each line of the image is rounded out to a multiple of 16 bits.
 *   This corresponds to the rounding convention used by the memory pixrect
 *   package (/usr/include/pixrect/memvar.h) of the SunWindows system.
 *	The ras_encoding field (always set to 0 by Sun's supported software)
 *   was renamed to ras_length in release 2.0.  As a result, rasterfiles
 *   of type 0 generated by the old software claim to have 0 length; for
 *   compatibility, code reading rasterfiles must be prepared to compute the
 *   true length from the width, height, and depth fields.
 */