DIRECTORY Rope USING [ROPE], ImagerColor USING [RGB, Color], AIS USING [Raster, FRef, WRef], PrintColorXForms USING [TRCTable, MatrixTables], CalibratedColor USING [RGBCalibration, SampledCalibration, XYZ], SampleCache USING [RefCache, Sample], ColorPlotGamuts USING [State, Projection]; ImageGamuts: CEDAR DEFINITIONS ~ BEGIN State: TYPE ~ ColorPlotGamuts.State; Projection: TYPE ~ ColorPlotGamuts.Projection; RGBCalibration: TYPE = CalibratedColor.RGBCalibration; SampledCalibration: TYPE = CalibratedColor.SampledCalibration; RefCache: TYPE = SampleCache.RefCache; Sample: TYPE = SampleCache.Sample; XYZ: TYPE = CalibratedColor.XYZ; ROPE: TYPE = Rope.ROPE; RGB: TYPE = ImagerColor.RGB; AISColors: TYPE = {r,g,b, clipped}; AISFile: TYPE = RECORD[name: ROPE _ NIL, fRef: AIS.FRef _ NIL, wRef: AIS.WRef _ NIL, raster: AIS.Raster _ NIL]; AISFiles: TYPE = ARRAY AISColors OF AISFile; CreateInputData: PROC [fileStem: ROPE, rgbCal: RGBCalibration] RETURNS [inputData: RefCache]; OpenFiles: PROC [fileStem: ROPE] RETURNS [aisFiles: AISFiles]; CloseFiles: PROC [aisFiles: AISFiles]; CreateFiles: PROC [fileStem: ROPE, raster: AIS.Raster] RETURNS [aisFiles: AISFiles]; FindFile: PROC [stem, key, default: ROPE] RETURNS [ROPE]; MapProc: TYPE = PROC[rgbBytes: Sample, rgb: ImagerColor.RGB, data: REF] RETURNS[XYZ]; ColorProc: TYPE =PROC[sample: Sample] RETURNS[RGB]; PlotInputData: PROC [state: State, inputData: RefCache, mapData: REF, mapProc: MapProc _ NIL, imageColorProc: ColorProc _ NIL]; PlotInfo: TYPE = RECORD[aisRoot, ipRoot, note: ROPE, res: NAT, rgbCal: RGBCalibration, sampledCal: SampledCalibration, labelColor: ImagerColor.Color, bleedBackground: BOOLEAN _ TRUE, inputData: RefCache _ NIL]; MapInfo: TYPE = RECORD[mapProc: MapProc, mapData: REF, rgbState: BOOLEAN _ TRUE]; --default color proc makes rainbows on image GetCalibrations: PROC[rgbAtom, sampledAtom: ATOM] RETURNS[rgbCal: RGBCalibration, sampledCal: SampledCalibration]; MakeChromaPlot: PROC [pi: PlotInfo, xAxis, yAxis: Projection, mapInfo: MapInfo]; MakeLStarPlot: PROC [pi: PlotInfo, xAxis: Projection, mapInfo: MapInfo]; Make3LABViews: PROC [pi: PlotInfo, mapInfo: MapInfo]; PrinterMapData: TYPE = REF PrinterMapDataRec; PrinterMapDataRec: TYPE = RECORD [tables: PrintColorXForms.MatrixTables, sampledCal: SampledCalibration]; -- used to see printed values MatrixMapData: TYPE = REF MatrixMapDataRec; MatrixMapDataRec: TYPE = RECORD [tables: PrintColorXForms.MatrixTables, rgbCal: RGBCalibration]; -- used to see mapped values RGBMap: PUBLIC MapProc; --data is an RGBCal MatrixMap: MapProc; PrinterMap: MapProc; GetMonitorMapInfo: PROC[rgbCal: RGBCalibration] RETURNS[MapInfo]; GetMappedMapInfo: PROC[tables: PrintColorXForms.MatrixTables, rgbCal: RGBCalibration] RETURNS[MapInfo]; GetPrinterMapInfo: PROC[tables: PrintColorXForms.MatrixTables, sampledCal: SampledCalibration] RETURNS[MapInfo]; SampleProc: TYPE = PROC[in: Sample] RETURNS[out: Sample]; AdjustFiles: PROC [fileStem, adjusted: ROPE, proc: SampleProc]; SaturationMatrix: PROC [rgbToLStar: PrintColorXForms.TRCTable, saturation: REAL, printerDMax: REAL] RETURNS [PrintColorXForms.MatrixTables]; AdjustWithMatrix: PROC [fileStem, adjusted: ROPE, matrixTables: PrintColorXForms.MatrixTables]; END. ๘ImageGamuts.mesa Copyright ำ 1987 by Xerox Corporation. All rights reserved. Maureen Stone, July 27, 1989 1:01:08 pm PDT Reads images, maps colors, plots colors Read Images Plot Image Gamuts Plotting macros Mapped Plots Map Image Gamuts ส๚˜code•Mark outsideHeaderšœ™Kšœ<™Kšœ œ˜&Kšœœ˜"Kšœœœ˜ Kšœœœ˜Kšœœœ˜—headšœ ™ Kšœ œ˜#Kšœ œœœœœœœœ œ œ˜oKšœ œœ œ ˜,Kšฯnœœ œœ˜]KšŸ œœ œœ˜>KšŸ œœ˜&Kš Ÿ œœ œ œ œ˜TJš Ÿœœœœœ˜9K™—šœ™Kš œ œœ$œœœœ˜UKš œ œœœœ˜3Kš Ÿ œœ.œœœ˜€—™Kšœ œœœœjœœœ˜าKš œ œœœ œœฯc,˜~K˜KšŸœœœœ9˜rKšŸœœ=˜RKšŸ œœ5˜IKšŸ œœ"˜6K˜—™ Kšœœœ˜-KšœœœK ˜ˆKšœœœ˜+KšœœœC ˜~KšŸœœ  ˜+KšŸ œ ˜KšŸ œ ˜KšŸœœœ ˜AKšŸœœ@œ ˜gKšŸœœHœ ˜pK˜K˜—šœ™Kšœ œœ œ˜9KšŸ œœœ˜@Kš Ÿœœ5œœœ!˜ŽKšŸœœœ/˜`—K˜Kšœ˜—…— ดฆ