blob: 6d80020a62e3a26ef69c78a7e54d633eeb222333 (
plain) (
blame)
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
# IMPORT.H - Data structure definition file for the IMPORT task.
define SZ_IMPSTRUCT 40 # size of the import structure
define SZ_EXPR (20*SZ_LINE) # max size of an expression
define SZ_COMMENT 1024 # size of a database format comment
define LEN_UA 20000 # minimum user header length
define MAX_OPERANDS 1024
# Input format parameters.
define IP_INTERLEAVE Memi[$1] # type of data interleaving
define IP_HSKIP Memi[$1+1] # bytes to skip before data
define IP_TSKIP Memi[$1+2] # bytes to skip after data
define IP_BSKIP Memi[$1+3] # bytes between image bands
define IP_LSKIP Memi[$1+4] # bytes to skip at front of line
define IP_LPAD Memi[$1+5] # bytes to skip at end of line
define IP_SWAP Memi[$1+6] # type of byte swapping
define IP_NPIXT Memi[$1+7] # number of pixtypes
define IP_PIXTYPE Memi[$1+8] # pixtype ptr to operands
define IP_NDIM Memi[$1+9] # number of input axes
define IP_AXLEN Memi[($1+10)+$2-1] # input axis dimension
# Output parameters.
define IP_OUTPUT Memi[$1+20] # type of output generated
define IP_OUTTYPE Memi[$1+21] # output pixel type
define IP_NBANDS Memi[$1+22] # no. of outbands expr string
define IP_OUTBANDS Memi[$1+23] # outbands expr string (ptr)
define IP_IMHEADER Memi[$1+24] # file w/ header info (ptr)
define IP_VERBOSE Memi[$1+25] # verbose output flag
define IP_FORMAT Memi[$1+26] # format param
define IP_BLTIN Memi[$1+27] # format is a 'builtin'
define IP_FCODE Memi[$1+28] # builtin format code
define IP_FSYM Memi[$1+29] # symtab pointer to db record
define IP_IM Memi[$1+30] # output image pointer
define IP_FD Memi[$1+31] # binary file pointer
define IP_OFFSET Memi[$1+32] # binary file offset
define IP_FLIP Memi[$1+33] # output image orientation flag
define IP_COMPTR Memi[$1+34] # comment block pointer
define IP_BUFPTR Memi[$1+35] # array of image buffers (ptr)
define IP_NPTRS Memi[$1+36] # number of image buffer
define IP_SZBUF Memi[$1+37] # size of image buffer (lines)
define IP_CMAP Memi[$1+38] # image colormap (ptr)
define IP_USE_CMAP Memi[$1+39] # use the image colormap?
# Useful Macros
define PTYPE Memi[IP_PIXTYPE($1)+$2-1]
define OBANDS Memi[IP_OUTBANDS($1)+$2-1]
define COMMENT Memc[IP_COMPTR($1)]
define BUFFER Memi[IP_BUFPTR($1)+$2-1]
#-----------------------------------------------------------------------------
# Outbands structure
define LEN_OUTBANDS 2
define OB_EXPR Memi[$1] # expression string
define OB_OP Memi[$1+1] # operand struct pointer
define O_EXPR Memc[OB_EXPR(OBANDS($1,$2))]
define O_OP OB_OP(OBANDS($1,$2))
# Operand structure
define SZ_TAG 15
define LEN_OPERAND 6
define IO_TAG Memi[$1] # operand tag name
define IO_TYPE Memi[$1+1] # operand type
define IO_NBYTES Memi[$1+2] # number of bytes
define IO_NPIX Memi[$1+3] # number of pixels
define IO_DATA Memi[$1+4] # line of pixels
define OP_TAG Memc[IO_TAG($1)]
# Format type flags
define IP_NONE 1 # format derived from task params
define IP_SENSE 2 # format divined from database
define IP_NAME 3 # format derived from database
define IP_BUILTIN 4 # format derived from database
# Output type flags
define IP_IMAGE 5 # generate an output image
define IP_LIST 6 # list pixels (according to 'outbands')
define IP_INFO 7 # print info about image format
# Byte swapping flags
define S_NONE 000B # swap nothing
define S_ALL 001B # swap everything
define S_I2 002B # swap short ints
define S_I4 004B # swap long ints
define SWAP_STR "|no|none|yes|i2|i4|"
# Image flipping flags
define FLIP_NONE 000B # don't flip the image
define FLIP_X 001B # flip image in X
define FLIP_Y 002B # flip image in Y
# Pixtype pixel types
define PT_BYTE 1 # byte data (no conversion)
define PT_UINT 2 # unsigned integer
define PT_INT 3 # signed integer
define PT_IEEE 4 # ieee floating point
define PT_NATIVE 5 # native floating point
define PT_SKIP 6 # skip
# Default task parameters.
define DEF_SWAP S_NONE
define DEF_INTERLEAVE 0
define DEF_HSKIP 0
define DEF_TSKIP 0
define DEF_BSKIP 0
define DEF_LSKIP 0
define DEF_LPAD 0
# Useful macros.
define BAND_INTERLEAVED ((IP_NPIXT($1)==1)&&(IP_INTERLEAVE($1)==0))
define LINE_INTERLEAVED ((IP_NPIXT($1)==1)&&(IP_INTERLEAVE($1)>1))
define PIXEL_INTERLEAVED ((IP_NPIXT($1)>1)&&(IP_INTERLEAVE(ip)==0))
# NTSC grayscale coefficients.
define R_COEFF 0.299
define G_COEFF 0.587
define B_COEFF 0.114
# Colormap definitions.
define CMAP_SIZE 256 # Output colormap length
define CMAP_MAX 255 # Maximum map value
define CMAP Memc[$1+($2*CMAP_SIZE)+$3-1]
define IP_RED 0
define IP_GREEN 1
define IP_BLUE 2
|