ImageTwiddle.mesa
Last Edited by: Crow, April 4, 1989 11:16:11 am PDT
DIRECTORY
Terminal USING [ Virtual ],
Rope USING [ ROPE ],
Imager USING [ Context ],
ThreeDBasics USING [ Context, RGB ];
Colors
SetNamedColor: PROC [imagerCtx: Imager.Context, color: Rope.ROPE];
SetRGBColor:
PROC [imagerCtx: Imager.Context, clr:
RGB];
Called to set color in imager contexts
Rotate8BitClrMap:
PROC [vt: Terminal.Virtual, firstValue, lastValue, duration:
NAT ← 0];
For far out cheap thrills with color map
Show8BitClrMap:
PROC [context:
REF Context];
display color map values in top middle of screen
ShowMapOnLog:
PUBLIC PROC [context:
REF Context, vt: Terminal.Virtual];
Print color map on log for context
LoadMultiRamps:
PROC [vt: Terminal.Virtual, colors:
LIST
OF
RGB];
load linear ramps between succesive colors in list, divide color map into roughly equal parts
ThresholdClrMap:
PROC [vt: Terminal.Virtual, levels:
NAT];
set color map to constant steps simulating restricted number of grey levels
ThresholdImage:
PROC [context:
REF Context, levels:
NAT];
adjust pixel values over whole image to conform restricted number of grey levels
AdjustValueRamp:
PROC[context:
REF Context, exponent:
RGB];
adjust pixel values over whole image to conform to ramp bent by exponent
AdjustSaturation:
PROC[context:
REF Context, percent:
REAL];
adjust pixel values over whole image to change saturation of image
LoadOldStd8BitClrMap:
PUBLIC PROC [vt: Terminal.Virtual];
For backward compatibility with old AIS files, may be obsolete
SetUpTerrainColors:
PROC[vt: Terminal.Virtual];
Set up custom colormap for old terrain map images
Image manipulation
DitherImage:
PROC[dstContext, rgbContext:
REF Context];
Dither a full-color image down to 8 bits using 6x6x6 cube color map
ScaleDownImage:
PROC[dstContext, srcContext:
REF Context, strtchFctr:
REAL ← 1.0];
Scale image down to size given by viewports, uses Bresenham scaler. StrtchFctr scales source pixel values to expand or compress dynamic range