00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 kCGColorSpaceModelUnknown = -1;
00024 kCGColorSpaceModelMonochrome = 0;
00025 kCGColorSpaceModelRGB = 1;
00026 kCGColorSpaceModelCMYK = 2;
00027 kCGColorSpaceModelLab = 3;
00028 kCGColorSpaceModelDeviceN = 4;
00029 kCGColorSpaceModelIndexed = 5;
00030 kCGColorSpaceModelPattern = 6;
00031
00032
00033
00034
00035
00036 kCGColorSpaceGenericGray = "CGColorSpaceGenericGray";
00037
00038
00039
00040
00041 kCGColorSpaceGenericRGB = "CGColorSpaceGenericRGB";
00042
00043
00044
00045
00046 kCGColorSpaceGenericCMYK = "CGColorSpaceGenericCMYK";
00047
00048
00049
00050
00051 kCGColorSpaceGenericRGBLinear = "CGColorSpaceGenericRGBLinear";
00052
00053
00054
00055
00056 kCGColorSpaceGenericRGBHDR = "CGColorSpaceGenericRGBHDR";
00057
00058
00059
00060
00061 kCGColorSpaceAdobeRGB1998 = "CGColorSpaceAdobeRGB1998";
00062
00063
00064
00065
00066 kCGColorSpaceSRGB = "CGColorSpaceSRGB";
00067
00068 var _CGNamedColorSpaces = {};
00069
00070 #define _CGColorSpaceCreateWithModel(aModel, aComponentCount, aBaseColorSpace) \
00071 { model:aModel, count:aComponentCount, base:aBaseColorSpace }
00072
00073 function CGColorSpaceCreateCalibratedGray(aWhitePoint, aBlackPoint, gamma)
00074 {
00075 return _CGColorSpaceCreateWithModel(kCGColorSpaceModelMonochrome, 1, NULL);
00076 }
00077
00078 function CGColorSpaceCreateCalibratedRGB(aWhitePoint, aBlackPoint, gamma)
00079 {
00080 return _CGColorSpaceCreateWithModel(kCGColorSpaceModelRGB, 1, NULL);
00081 }
00082
00083 function CGColorSpaceCreateICCBased(aComponentCount, range, profile, alternate)
00084 {
00085
00086 return NULL;
00087 }
00088
00089 function CGColorSpaceCreateLab(aWhitePoint, aBlackPoint, aRange)
00090 {
00091
00092 return NULL;
00093 }
00094
00095 function CGColorSpaceCreateDeviceCMYK()
00096 {
00097 return CGColorSpaceCreateWithName(kCGColorSpaceGenericCMYK);
00098 }
00099
00100 function CGColorSpaceCreateDeviceGray()
00101 {
00102 return CGColorSpaceCreateWithName(kCGColorSpaceGenericGray);
00103 }
00104
00105 function CGColorSpaceCreateDeviceRGB()
00106 {
00107 return CGColorSpaceCreateWithName(kCGColorSpaceGenericRGB);
00108 }
00109
00110 function CGColorSpaceCreateWithPlatformColorSpace()
00111 {
00112
00113 return NULL;
00114 }
00115
00116 function CGColorSpaceCreateIndexed(aBaseColorSpace, lastIndex, colorTable)
00117 {
00118
00119 return NULL;
00120 }
00121
00122 function CGColorSpaceCreatePattern(aBaseColorSpace)
00123 {
00124 if (aBaseColorSpace)
00125 return _CGColorSpaceCreateWithModel(kCGColorSpaceModelPattern, aBaseColorSpace.count, aBaseColorSpace);
00126
00127 return _CGColorSpaceCreateWithModel(kCGColorSpaceModelPattern, 0, NULL);
00128 }
00129
00130 function CGColorSpaceCreateWithName(aName)
00131 {
00132 var colorSpace = _CGNamedColorSpaces[aName];
00133
00134 if (colorSpace)
00135 return colorSpace;
00136
00137 switch (aName)
00138 {
00139 case kCGColorSpaceGenericGray: return _CGNamedColorSpaces[aName] = _CGColorSpaceCreateWithModel(kCGColorSpaceModelMonochrome, 1, NULL);
00140 case kCGColorSpaceGenericRGB: return _CGNamedColorSpaces[aName] = _CGColorSpaceCreateWithModel(kCGColorSpaceModelRGB, 3, NULL);
00141 case kCGColorSpaceGenericCMYK: return _CGNamedColorSpaces[aName] = _CGColorSpaceCreateWithModel(kCGColorSpaceModelCMYK, 4, NULL);
00142 case kCGColorSpaceGenericRGBLinear: return _CGNamedColorSpaces[aName] = _CGColorSpaceCreateWithModel(kCGColorSpaceModelRGB, 3, NULL);
00143 case kCGColorSpaceGenericRGBHDR: return _CGNamedColorSpaces[aName] = _CGColorSpaceCreateWithModel(kCGColorSpaceModelRGB, 3, NULL);
00144 case kCGColorSpaceAdobeRGB1998: return _CGNamedColorSpaces[aName] = _CGColorSpaceCreateWithModel(kCGColorSpaceModelRGB, 3, NULL);
00145 case kCGColorSpaceSRGB: return _CGNamedColorSpaces[aName] = _CGColorSpaceCreateWithModel(kCGColorSpaceModelRGB, 3, NULL);
00146 }
00147
00148 return NULL;
00149 }
00150
00151
00152
00153 function CGColorSpaceCopyICCProfile(aColorSpace)
00154 {
00155 return NULL;
00156 }
00157
00158 function CGColorSpaceGetNumberOfComponents(aColorSpace)
00159 {
00160 return aColorSpace.count;
00161 }
00162
00163 function CGColorSpaceGetTypeID(aColorSpace)
00164 {
00165 }
00166
00167 function CGColorSpaceGetModel(aColorSpace)
00168 {
00169 return aColorSpace.model;
00170 }
00171
00172 function CGColorSpaceGetBaseColorSpace(aColorSpace)
00173 {
00174 }
00175
00176 function CGColorSpaceGetColorTableCount(aColorSpace)
00177 {
00178 }
00179
00180 function CGColorSpaceGetColorTable(aColorSpace)
00181 {
00182 }
00183
00184
00185
00186 function CGColorSpaceRelease(aColorSpace)
00187 {
00188 }
00189
00190 function CGColorSpaceRetain(aColorSpace)
00191 {
00192 return aColorSpace;
00193 }
00194
00195
00196 #define STANDARDIZE(components, index, minimum, maximum, multiplier) \
00197 { \
00198 if (index > components.length) \
00199 { \
00200 components[index] = maximum; \
00201 return; \
00202 } \
00203 \
00204 var component = components[index]; \
00205 \
00206 if (component < minimum) \
00207 components[index] = minimum; \
00208 else if (component > maximum) \
00209 components[index] = maximum; \
00210 else \
00211 components[index] = ROUND(component * multiplier) / multiplier; \
00212 }
00213
00214 function CGColorSpaceStandardizeComponents(aColorSpace, components)
00215 {
00216 var count = aColorSpace.count;
00217
00218
00219
00220
00221 STANDARDIZE(components, count, 0, 1, 1000);
00222
00223 if (aColorSpace.base)
00224 aColorSpace = aColorSpace.base;
00225
00226 switch (aColorSpace.model)
00227 {
00228 case kCGColorSpaceModelMonochrome:
00229 case kCGColorSpaceModelRGB:
00230 case kCGColorSpaceModelCMYK:
00231 case kCGColorSpaceModelDeviceN: while (count--)
00232 STANDARDIZE(components, count, 0, 1, 255);
00233 break;
00234
00235
00236 case kCGColorSpaceModelIndexed:
00237 case kCGColorSpaceModelLab:
00238 case kCGColorSpaceModelPattern: break;
00239 }
00240 }