ImagerPixelRow:
CEDAR
DEFINITIONS ~
BEGIN
PixelMap: TYPE ~ ImagerPixelMaps.PixelMap;
Transformation: TYPE ~ ImagerTransform.Transformation;
Pixel: TYPE ~ CARDINAL;
PixelRow: TYPE ~ REF PixelRowRep;
PixelRowRep:
TYPE ~
RECORD [
sOrigin: INTEGER,
fOrigin: INTEGER,
pixel: SEQUENCE fSize: NAT OF Pixel
];
CreatePixelRow:
PROC [sMin, fMin:
INTEGER, fSize:
NAT]
RETURNS [new: PixelRow];
ClearPixelRow:
PROC [pixelRow: PixelRow];
CopyPixelRow:
PROC [pixelRow: PixelRow, scratch: PixelRow ←
NIL]
RETURNS [new: PixelRow];
AddByColumn:
PROC [dest, source: PixelRow];
SubtractByColumn:
PROC [dest, source: PixelRow];
LoadPixelRow:
PROC [pixelRow: PixelRow, source: PixelMap];
StorePixelRow:
PROC [pixelRow: PixelRow, 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 ImagerPixelMaps.PixelMapRep ←
NIL]
RETURNS [PixelMap];
BoxFilter:
PROC [pixelMap: PixelMap, sSizeBox, fSizeBox:
NAT];
BoxTooBig: ERROR;
ChangeBitsPerPixel:
PROC [pixelMap: PixelMap, newLgBitsPerPixel: [0..4], scratch:
REF ImagerPixelMaps.PixelMapRep ←
NIL]
RETURNS [PixelMap];
Renormalize:
PROC [pixelMap: PixelMap, oldmin, oldmax, newmin, newmax:
REAL];
END.