<> <> <> <> <<>> DIRECTORY ImagerPixelMap, ImagerTransformation; ImagerPixelSeq: CEDAR DEFINITIONS ~ BEGIN PixelMap: TYPE ~ ImagerPixelMap.PixelMap; Transformation: TYPE ~ ImagerTransformation.Transformation; Pixel: TYPE ~ CARDINAL; PixelSeq: TYPE ~ REF PixelSeqRep; PixelSeqRep: TYPE ~ RECORD [ SEQUENCE maxSize: NAT OF Pixel ]; Create: PROC [maxSize: NAT] RETURNS [new: PixelSeq]; ObtainScratch: PROC [maxSize: NAT] RETURNS [PixelSeq]; <> <<>> ReleaseScratch: PROC [pixelSeq: PixelSeq]; Clear: PROC [pixelSeq: PixelSeq, size: NAT]; Copy: PROC [pixelSeq: PixelSeq, size: NAT, scratch: PixelSeq _ NIL] RETURNS [new: PixelSeq]; Add: PROC [dest, source: PixelSeq, size: NAT]; Subtract: PROC [dest, source: PixelSeq, size: NAT]; Apply: PROC [dest, source: PixelSeq, size: NAT, table: PixelSeq]; <> ApplyAndAdd: PROC [dest, source: PixelSeq, size: NAT, table: PixelSeq]; <> LoadF: PROC [pixelSeq: PixelSeq, s, f: INTEGER, size: NAT, source: PixelMap]; LoadS: PROC [pixelSeq: PixelSeq, s, f: INTEGER, size: NAT, source: PixelMap]; StoreF: PROC [pixelSeq: PixelSeq, s, f: INTEGER, size: NAT, dest: PixelMap]; StoreS: PROC [pixelSeq: PixelSeq, s, f: INTEGER, size: NAT, dest: PixelMap]; TransferSamples: PROC [dest, source: PixelMap, transformation: Transformation, tile: BOOLEAN _ FALSE, multiplier: CARDINAL _ 1, lgScale: INTEGER _ 0]; UnderSample: PROC [pixelMap: PixelMap, transformation: Transformation, tile: BOOLEAN _ FALSE, background: CARDINAL _ 0, scratch: REF ImagerPixelMap.PixelMapRep _ NIL] RETURNS [PixelMap]; BoxFilter: PROC [pixelMap: PixelMap, sSizeBox, fSizeBox: NAT]; ChangeBitsPerPixel: PROC [pixelMap: PixelMap, newLgBitsPerPixel: [0..4], scratch: REF ImagerPixelMap.PixelMapRep _ NIL] RETURNS [PixelMap]; Renormalize: PROC [pixelMap: PixelMap, oldmin, oldmax, newmin, newmax: REAL]; END.