<<>> <> <> <> <> <> <> DIRECTORY ConvertUnsafe USING [ToRope], ImagerColor USING [SpecialColor, ColorRep, ConstantColor], ImagerColorES USING [ColorFromCIELAB, ColorFromRGB, ColorRep, ConstantColor, FindColor, Tristimulus, XeroxRGBFromXYZ, XYZ, Yxy], ImagerColorPrivate USING [RegisterNamedColor], Rope USING [ROPE, Concat]; ColorRegistryCESImpl: CEDAR PROGRAM IMPORTS ConvertUnsafe, ImagerColorES, ImagerColorPrivate, Rope ~ BEGIN RegisterCorporatePalette: PROC ~ BEGIN <> special: ImagerColor.SpecialColor; RegisterIt: PROC [name: LONG STRING, w1, w2, w3: REAL] = { special ¬ NEW [ImagerColorES.ColorRep.constant.special]; special.type ¬ $Spot; special.name ¬ Rope.Concat["Xerox/CorporatePalette/", ConvertUnsafe.ToRope[name]]; special.substitute ¬ NARROW [ImagerColorES.ColorFromCIELAB [[w1, w2, w3]], ImagerColorES.ConstantColor]; ImagerColorPrivate.RegisterNamedColor [special]; }; RegisterIt["Coated/X0", 20.4501, 15.0, 0.0]; RegisterIt["Coated/X1", 70.93933, 16.0, 17.0]; RegisterIt["Coated/X2", 59.2955, 17.0, 17.0]; RegisterIt["Coated/X3", 46.18395, 19.0, 12.0]; RegisterIt["Coated/X4", 76.90802, 41.0, 114.0]; RegisterIt["Coated/X5", 68.88454, 51.0, 100.0]; RegisterIt["Coated/X6", 55.3816, 32.0, 58.0]; RegisterIt["Coated/X7", 48.43444, 41.0, 70.0]; RegisterIt["Coated/X8", 62.72015, 69.0, 93.0]; RegisterIt["Coated/X9", 50.97848, 85.0, 71.0]; RegisterIt["Coated/X10", 47.26027, 79.0, 37.0]; RegisterIt["Coated/X11", 39.43248, 66.0, 30.0]; RegisterIt["Coated/X12", 38.8454, 74.0, 19.0]; RegisterIt["Coated/X13", 52.0548, 94.0, 60.0]; RegisterIt["Coated/X14", 43.83562, 104.0, 72.0]; RegisterIt["Coated/X15", 41.78082, 81.0, 26.0]; RegisterIt["Coated/X16", 32.87671, 14.0, -70.0]; RegisterIt["Coated/X17", 27.98435, 27.0, -76.0]; RegisterIt["Coated/X18", 27.39726, 22.0, -72.0]; RegisterIt["Coated/X19", 10.56751, 47.0, -70.0]; RegisterIt["Coated/X20", 47.45597, -61.0, 59.0]; RegisterIt["Coated/X21", 40.60666, -65.0, 38.0]; RegisterIt["Coated/X22", 38.55186, -55.0, 16.0]; RegisterIt["Uncoated/X0", 41.68297, 0.0, 6.0]; RegisterIt["Uncoated/X1", 84.44227, -19.0, 25.0]; RegisterIt["Uncoated/X2", 71.52642, -14.0, 20.0]; RegisterIt["Uncoated/X3", 59.00196, -9.0, 15.0]; RegisterIt["Uncoated/X4", 91.58513, 21.0, 130.0]; RegisterIt["Uncoated/X5", 81.31116, 27.0, 105.0]; RegisterIt["Uncoated/X6", 77.8865, 11.0, 58.0]; RegisterIt["Uncoated/X7", 62.42661, 4.0, 61.0]; RegisterIt["Uncoated/X8", 77.39726, 39.0, 93.0]; RegisterIt["Uncoated/X9", 65.55773, 44.0, 44.0]; RegisterIt["Uncoated/X10", 58.70842, 33.0, 25.0]; RegisterIt["Uncoated/X11", 55.87084, 26.0, 20.0]; RegisterIt["Uncoated/X12", 55.5773, 31.0, 14.0]; RegisterIt["Uncoated/X13", 66.63405, 53.0, 40.0]; RegisterIt["Uncoated/X14", 63.50294, 64.0, 52.0]; RegisterIt["Uncoated/X15", 57.82779, 37.0, 20.0]; RegisterIt["Uncoated/X16", 49.51076, -20.0, -60.0]; RegisterIt["Uncoated/X17", 37.08415, 0.0, -70.0]; RegisterIt["Uncoated/X18", 51.46771, -1.0, -38.0]; RegisterIt["Uncoated/X19", 36.9863, 1.0, -44.0]; RegisterIt["Uncoated/X20", 64.38356, -67.0, 55.0]; RegisterIt["Uncoated/X21", 59.98043, -67.0, 31.0]; RegisterIt["Uncoated/X22", 54.30529, -43.0, 10.0] END; -- RegisterCorporatePalette RegisterOlympiaPalette: PROC ~ BEGIN <> <<286 Blue (coated) x: 0.1665 y: 0.1190 Y: 13.87 |Y| = 4.820994e-2>> << (uncoated) x: 0.2281 y: 0.2126 Y: 32.03 |Y| = 0.1079178>> <<116 Yellow (coated) x: 0.4863 y: 0.4847 Y: 207.9 |Y| = 0.7226277>> << (uncoated) x: 0.4936 y: 0.4518 Y: 187.6 |Y| = 0.6320755>> <<347 Green (coated) x: 0.2446 y: 0.5767 Y: 62.44 |Y| = 0.2170316>> << (uncoated) x: 0.2894 y: 0.4766 Y: 85.22 |Y| = 0.2871294>> <<186 Red (coated) x: 0.5930 y: 0.3258 Y: 50.00 |Y| = 0.1737921>> << (uncoated) x: 0.5190 y: 0.3409 Y: 61.96 |Y| = 0.2087601>> <> << (uncoated) x: 0.3506 y: 0.3756 Y: 296.8 |Y| = 1.0>> special: ImagerColor.SpecialColor; whiteC: ImagerColorES.XYZ ~ ImagerColorES.Tristimulus [[Y: 1.0, x: 0.3511, y: 0.3736]]; whiteU: ImagerColorES.XYZ ~ ImagerColorES.Tristimulus [[Y: 1.0, x: 0.3506, y: 0.3756]]; ColorFromTristimulus: PROC [t: ImagerColorES.Yxy, w: ImagerColorES.XYZ] RETURNS [ImagerColorES.ConstantColor] ~ BEGIN RETURN [NARROW [ImagerColorES.ColorFromRGB [ImagerColorES.XeroxRGBFromXYZ [ImagerColorES.Tristimulus [t]]], ImagerColorES.ConstantColor]] END; -- ColorFromTristimulus RegisterIt: PROC [name: LONG STRING, Y, x, y: REAL, w: ImagerColorES.XYZ] = { special ¬ NEW [ImagerColorES.ColorRep.constant.special]; special.type ¬ $Spot; special.name ¬ ConvertUnsafe.ToRope["name"]; special.substitute ¬ ColorFromTristimulus [[Y: Y, x: x, y: y], w]; ImagerColorPrivate.RegisterNamedColor [special]; }; RegisterIt["Xerox/Olympia/Coated/Blue", 4.820994e-2, 0.1665, 0.1190, whiteC]; RegisterIt["Xerox/Olympia/Uncoated/Blue", 0.1079178, 0.2281, 0.2126, whiteU]; RegisterIt["Xerox/Olympia/Coated/Yellow", 0.7226277, 0.4863, 0.4847, whiteC]; RegisterIt["Xerox/Olympia/Uncoated/Yellow", 0.6320755, 0.4936, 0.4518, whiteU]; special ¬ NEW [ImagerColorES.ColorRep.constant.special]; special.type ¬ $Spot; special.name ¬ "Xerox/Olympia/Coated/Black"; special.substitute ¬ ImagerColorES.FindColor ["Xerox/Solid/Black"]; ImagerColorPrivate.RegisterNamedColor [special]; special ¬ NEW [ImagerColorES.ColorRep.constant.special]; special.type ¬ $Spot; special.name ¬ "Xerox/Olympia/Uncoated/Black"; special.substitute ¬ ImagerColorES.FindColor ["Xerox/Solid/Black"]; ImagerColorPrivate.RegisterNamedColor [special]; RegisterIt["Xerox/Olympia/Coated/Green", 0.2170316, 0.2446, 0.5767, whiteC]; RegisterIt["Xerox/Olympia/Uncoated/Green", 0.2871294, 0.2894, 0.4766, whiteU]; RegisterIt["Xerox/Olympia/Coated/Red", 0.1737921, 0.5930, 0.3258, whiteC]; RegisterIt["Xerox/Olympia/Uncoated/Red", 0.2087601, 0.5190, 0.3409, whiteU]; ImagerColorPrivate.RegisterNamedColor [special] END; -- RegisterOlympiaPalette RegisterCorporatePalette[]; RegisterOlympiaPalette[]; END.