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
|
# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc.
include <imhdr.h>
include <imio.h>
# IMPL1? -- Put a line to an apparently one dimensional image. If there
# is only one input buffer, no image section, we are not referencing out of
# bounds, and no datatype conversion needs to be performed, directly access
# the pixels to reduce the overhead per line.
pointer procedure impl1$t (im)
pointer im # image header pointer
int fd, nchars
long offset
pointer bp, impgs$t(), fwritep()
errchk imopsf
begin
repeat {
if (IM_FAST(im) == YES && IM_PIXTYPE(im) == TY_PIXEL) {
fd = IM_PFD(im)
if (fd == NULL) {
call imopsf (im)
next
}
offset = IM_PIXOFF(im)
nchars = IM_PHYSLEN(im,1) * SZ_PIXEL
ifnoerr (bp = (fwritep (fd, offset, nchars) - 1) / SZ_PIXEL + 1)
return (bp)
}
return (impgs$t (im, long(1), IM_LEN(im,1), 1))
}
end
|