|
|
1.1 root 1: .TH PICFILE 5
2: .CT 1 inst_info graphics
3: .SH NAME
4: picfile \- raster graphic image format
5: .SH DESCRIPTION
6: Files in this format store images represented as two-dimensional
7: arrays of multiple-channel pixels.
8: A
9: .I picfile
10: consists of an
11: .SM ASCII
12: header followed by binary data encoding the pixels
13: in row-major order.
14: The header is a list of attribute/value pairs
15: separated by newlines, terminated by an
16: empty line.
17: Each header line has the form
18: .IB name = value.
19: The name may not contain an
20: .SM ASCII NUL,
21: newline or
22: .LR = ;
23: the value may not contain null or newline.
24: The last line of a header is empty.
25: .PP
26: The standard attributes are described below; all but
27: .BR TYPE
28: and
29: .BR WINDOW
30: are optional.
31: .B TYPE
32: must come first; otherwise order is irrelevant.
33: As any unrecognised attribute is passed over uninterpreted by all standard software,
34: applications are welcome to include arbitrary annotations, like
35: .BR SHOESIZE=10 ,
36: if they wish.
37: .TP
38: .BI TYPE= type
39: How the pixels are encoded.
40: Standard types are
41: .PD 0
42: .RS
43: .TF runcode
44: .TP
45: .B runcode
46: A run-length encoding.
47: The data are a sequence of
48: .RI ( nchan +1)-byte
49: records each containing a count
50: .I k
51: and
52: .I nchan
53: bytes giving a pixel value to be repeated
54: .IR k +1
55: times.
56: A run may not span scanlines.
57: .TP
58: .B dump
59: A two-dimensional array of
60: .IR nchan -byte
61: records in row major order.
62: .TP
63: .B bitmap
64: One-bit pixels, packed into bytes high bit leftmost.
65: Zero bits are white, one bits are black.
66: Rows are padded with zeros to a multiple of 16 bits.
67: .TP
68: .B ccitt-g4
69: A black-and-white image under CCITT FAX Group 4 compression.
70: This format is highly compressive on images of text and line art.
71: Similarly,
72: .L ccitt-g31
73: and
74: .L ccitt-g32
75: for Group 3, 1-D and 2-D.
76: .TP
77: .B pico
78: A sequence of
79: .I nchan
80: two-dimensional arrays of single bytes.
81: .TP
82: .B ccir601
83: Pixels are in dump order, 2 bytes per pixel
84: encoded according to the IEEE digital component video standard.
85: .RE
86: .TP
87: .BI WINDOW= "x0 y0 x1 y1
88: The
89: .I x,y
90: coordinates of the upper left corner and
91: the point just diagonally outside the lower right corner,
92: .I x
93: increasing to the right,
94: .I y
95: down.
96: .TP
97: .BI NCHAN= nchan
98: The number of channels, default 1.
99: .TP
100: .BI CHAN= value
101: The order of channels.
102: .TP
103: .BI RES= "x y
104: The digitizing resolution horizontally and vertically, in pixels/inch.
105: .PD
106: .TP
107: .B CMAP=
108: (The value is empty.)
109: A color map, a 256\(mu3-byte translation table for
110: color values, follows the header.
111: In a full-color picture, each color-map row maps pixel
112: values of the corresponding channel.
113: In a monochrome picture, pixel values index
114: the color map to yield red, green and blue, like this:
115: .IP
116: .EX
117: unsigned char cmap[256][3];
118: red=cmap[pixel][0];
119: green=cmap[pixel][1];
120: blue=cmap[pixel][2];
121: .EE
122: .SH EXAMPLES
123: .TP
124: .B sed '/^$/q' image
125: Print a header.
126: A sample header follows.
127: .LP
128: .EX
129: TYPE=dump
130: WINDOW=0 0 512 512
131: NCHAN=1
132: CHAN=m
133: RES=300 300
134: CMAP=
135: COMMAND= antiquantize 'halftone CLASSIC' 512.halftone LIBERTY.anticlassic
136: COMMAND= halftone CLASSIC 512.liberty 512.halftone 1.75 512.halftone
137: COMMAND= transpose IN OUT
138: COMMAND= resample 512 IN OUT
139: COMMAND= transpose IN OUT
140: COMMAND= resample 512 IN OUT
141: COMMAND= clip 400 400 LIBERTY OUT
142: .EE
143: .SH "SEE ALSO"
144: .IR bcp (1),
145: .IR cscan (1),
146: .IR imscan (1),
147: .IR pico (1),
148: .IR flicks (9.1),
149: .IR mugs
150: in
151: .IR face (9.7),
152: .IR rebecca (9.1),
153: .IR flickfile (9.5)
154: .br
155: T. Duff,
156: `The 10th Edition Raster Graphics System',
157: this manual, Volume\ 2
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.