color.cpp

来自「这是VCF框架的代码」· C++ 代码 · 共 1,312 行 · 第 1/5 页

CPP
1,312
字号
			//((uint8*)(&rgb))[2] = cr;			//((uint8*)(&rgb))[1] = cg;			//((uint8*)(&rgb))[0] = cb;			code = Format(L"%02X%02X%02X") % ua % ub % uc; // do not prefix '#' here (MP)		}		break;		case Color::cpsABGR : {			//uint32 rgb = 0;			//((uint8*)(&rgb))[0] = cr;			//((uint8*)(&rgb))[1] = cg;			//((uint8*)(&rgb))[2] = cb;			code = Format(L"%02X%02X%02X") % ua % ub % uc; // do not prefix '#' here (MP)		}		break;	}	return code;}String Color::toHexCode16( const ColorPackScheme& cps, const ColorType& ct ){	// Remark:	//   scheme: 0x00RRGGBB ( it would appear as BB GG RR 00 with Intel architecture ) so it should be:	//   code = StringUtils::format( L"%04X%04X%04X", cb, cg, cr ); if we want to see as it would appear with Intel architecture	String code = "";	uint16 ua, ub, uc;	double a, b, c;	switch ( ct ) {		case Color::ctRGB:			a = r_;			b = g_;			c = b_;			break;		case Color::ctHSV: {			ColorSpace::RGBtype rgb;			MAKE_RGB( rgb, r_, g_ , b_ );			ColorSpace::HSVtype hsv = ColorSpace::RGBToHSV(rgb);			SPLIT_HSV( hsv, a, b, c );			}			break;		case Color::ctHSL: {			ColorSpace::RGBtype rgb;			MAKE_RGB( rgb, r_, g_ , b_ );			ColorSpace::HSLtype hsl = ColorSpace::RGBToHSL(rgb);			SPLIT_HSL( hsl, a, b, c );			}			break;		case Color::ctHWB: {			ColorSpace::RGBtype rgb;			MAKE_RGB( rgb, r_, g_ , b_ );			ColorSpace::HWBtype hwb = ColorSpace::RGBToHWB(rgb);			SPLIT_HWB( hwb, a, b, c );			}			break;	}	ua = (uint16)(a * Color::xFFFF + 0.5);	ub = (uint16)(b * Color::xFFFF + 0.5);	uc = (uint16)(c * Color::xFFFF + 0.5);	switch ( cps ) {		case Color::cpsARGB : {			//uint32 rgb = 0;			//((uint8*)(&rgb))[2] = cr;			//((uint8*)(&rgb))[1] = cg;			//((uint8*)(&rgb))[0] = cb;			code = Format(L"%04X%04X%04X") % ua % ub % uc; // do not prefix '#' here (MP)		}		break;		case Color::cpsABGR : {			//uint32 rgb = 0;			//((uint8*)(&rgb))[0] = cr;			//((uint8*)(&rgb))[1] = cg;			//((uint8*)(&rgb))[2] = cb;			code = Format(L"%04X%04X%04X") % ua % ub % uc; // do not prefix '#' here (MP)		}		break;	}	return code;}Color& Color::brighter(){	throw NotImplementedException();	return *this;}Color& Color::darker(){	throw NotImplementedException();	return *this;}Color* Color::getColor( const int& gray ){	return GraphicsToolkit::getColorFromColormap( gray );}Color* Color::getColor( const String& colorName ){	return GraphicsToolkit::getColorFromColormap( colorName );}Color* Color::getColorMatch( const Color& color ){	return GraphicsToolkit::getColorMatchFromColormap( color );}const String Color::getColorNameFromMap( const Color& color ){	return GraphicsToolkit::getColorNameFromMap( color );}///////////////////////////////////////////////////////////////////////////////// ColorNames implementationColorNames::ColorNames(){    ColorNames::nameMapContainer.initContainer(ColorNames::nameMap);#ifdef VCF_LARGE_COLOR_LIST    //shades of gray    //color name r/g/b hex bg/fg color sample    ColorNames::nameMap[   black                    ] = L"black"                 ;   // 0xFF000000   //  0;0;0    ColorNames::nameMap[   grey                     ] = L"grey"                  ;   // 0xFFBEBEBE   //  190;190;190    ColorNames::nameMap[   dimgray                  ] = L"dimgray"               ;   // 0xFF696969   //  105;105;105 // frequently mispelled as dimgrey    ColorNames::nameMap[   lightgray                ] = L"lightgray"             ;   // 0xFFD3D3D3   //  211;211;211    ColorNames::nameMap[   lightslategrey           ] = L"lightslategrey"        ;   // 0xFF778899   //  119;136;153    ColorNames::nameMap[   slategray                ] = L"slategray"             ;   // 0xFF708090   //  112;128;144    ColorNames::nameMap[   slategray1               ] = L"slategray1"            ;   // 0xFFC6E2FF   //  198;226;255    ColorNames::nameMap[   slategray2               ] = L"slategray2"            ;   // 0xFFB9D3EE   //  185;211;238    ColorNames::nameMap[   slategray3               ] = L"slategray3"            ;   // 0xFF9FB6CD   //  159;182;205    ColorNames::nameMap[   slategray4               ] = L"slategray4"            ;   // 0xFF6C7B8B   //  108;123;139    ColorNames::nameMap[   slategrey                ] = L"slategrey"             ;   // 0xFF708090   //  112;128;144    ColorNames::nameMap[   grey0                    ] = L"grey0"                 ;   // 0xFF000000   //  0;0;0    ColorNames::nameMap[   grey1                    ] = L"grey1"                 ;   // 0xFF030303   //  3;3;3    ColorNames::nameMap[   grey2                    ] = L"grey2"                 ;   // 0xFF050505   //  5;5;5    ColorNames::nameMap[   grey3                    ] = L"grey3"                 ;   // 0xFF080808   //  8;8;8    ColorNames::nameMap[   grey4                    ] = L"grey4"                 ;   // 0xFF0A0A0A   //  10;10;10    ColorNames::nameMap[   grey5                    ] = L"grey5"                 ;   // 0xFF0D0D0D   //  13;13;13    ColorNames::nameMap[   grey6                    ] = L"grey6"                 ;   // 0xFF0F0F0F   //  15;15;15    ColorNames::nameMap[   grey7                    ] = L"grey7"                 ;   // 0xFF121212   //  18;18;18    ColorNames::nameMap[   grey8                    ] = L"grey8"                 ;   // 0xFF141414   //  20;20;20    ColorNames::nameMap[   grey98                   ] = L"grey98"                ;   // 0xFF171717   //  23;23;23    ColorNames::nameMap[   grey10                   ] = L"grey10"                ;   // 0xFF1A1A1A   //  26;26;26    ColorNames::nameMap[   grey11                   ] = L"grey11"                ;   // 0xFF1C1C1C   //  28;28;28    ColorNames::nameMap[   grey12                   ] = L"grey12"                ;   // 0xFF1F1F1F   //  31;31;31    ColorNames::nameMap[   grey13                   ] = L"grey13"                ;   // 0xFF212121   //  33;33;33    ColorNames::nameMap[   grey14                   ] = L"grey14"                ;   // 0xFF242424   //  36;36;36    ColorNames::nameMap[   grey15                   ] = L"grey15"                ;   // 0xFF262626   //  38;38;38    ColorNames::nameMap[   grey16                   ] = L"grey16"                ;   // 0xFF292929   //  41;41;41    ColorNames::nameMap[   grey17                   ] = L"grey17"                ;   // 0xFF2B2B2B   //  43;43;43    ColorNames::nameMap[   grey18                   ] = L"grey18"                ;   // 0xFF2E2E2E   //  46;46;46    ColorNames::nameMap[   grey19                   ] = L"grey19"                ;   // 0xFF303030   //  48;48;48    ColorNames::nameMap[   grey20                   ] = L"grey20"                ;   // 0xFF333333   //  51;51;51    ColorNames::nameMap[   grey21                   ] = L"grey21"                ;   // 0xFF363636   //  54;54;54    ColorNames::nameMap[   grey22                   ] = L"grey22"                ;   // 0xFF383838   //  56;56;56    ColorNames::nameMap[   grey23                   ] = L"grey23"                ;   // 0xFF3B3B3B   //  59;59;59    ColorNames::nameMap[   grey24                   ] = L"grey24"                ;   // 0xFF3D3D3D   //  61;61;61    ColorNames::nameMap[   grey25                   ] = L"grey25"                ;   // 0xFF404040   //  64;64;64    ColorNames::nameMap[   grey26                   ] = L"grey26"                ;   // 0xFF424242   //  66;66;66    ColorNames::nameMap[   grey27                   ] = L"grey27"                ;   // 0xFF454545   //  69;69;69    ColorNames::nameMap[   grey28                   ] = L"grey28"                ;   // 0xFF474747   //  71;71;71    ColorNames::nameMap[   grey29                   ] = L"grey29"                ;   // 0xFF4A4A4A   //  74;74;74    ColorNames::nameMap[   grey30                   ] = L"grey30"                ;   // 0xFF4D4D4D   //  77;77;77    ColorNames::nameMap[   grey31                   ] = L"grey31"                ;   // 0xFF4F4F4F   //  79;79;79    ColorNames::nameMap[   grey32                   ] = L"grey32"                ;   // 0xFF525252   //  82;82;82    ColorNames::nameMap[   grey33                   ] = L"grey33"                ;   // 0xFF545454   //  84;84;84    ColorNames::nameMap[   grey34                   ] = L"grey34"                ;   // 0xFF575757   //  87;87;87    ColorNames::nameMap[   grey35                   ] = L"grey35"                ;   // 0xFF595959   //  89;89;89    ColorNames::nameMap[   grey36                   ] = L"grey36"                ;   // 0xFF5C5C5C   //  92;92;92    ColorNames::nameMap[   grey37                   ] = L"grey37"                ;   // 0xFF5E5E5E   //  94;94;94    ColorNames::nameMap[   grey38                   ] = L"grey38"                ;   // 0xFF616161   //  97;97;97    ColorNames::nameMap[   grey39                   ] = L"grey39"                ;   // 0xFF636363   //  99;99;99    ColorNames::nameMap[   grey40                   ] = L"grey40"                ;   // 0xFF666666   //  102;102;102    ColorNames::nameMap[   grey41                   ] = L"grey41"                ;   // 0xFF696969   //  105;105;105    ColorNames::nameMap[   grey42                   ] = L"grey42"                ;   // 0xFF6B6B6B   //  107;107;107    ColorNames::nameMap[   grey43                   ] = L"grey43"                ;   // 0xFF6E6E6E   //  110;110;110    ColorNames::nameMap[   grey44                   ] = L"grey44"                ;   // 0xFF707070   //  112;112;112    ColorNames::nameMap[   grey45                   ] = L"grey45"                ;   // 0xFF737373   //  115;115;115    ColorNames::nameMap[   grey46                   ] = L"grey46"                ;   // 0xFF757575   //  117;117;117    ColorNames::nameMap[   grey47                   ] = L"grey47"                ;   // 0xFF787878   //  120;120;120    ColorNames::nameMap[   grey48                   ] = L"grey48"                ;   // 0xFF7A7A7A   //  122;122;122    ColorNames::nameMap[   grey49                   ] = L"grey49"                ;   // 0xFF7D7D7D   //  125;125;125    ColorNames::nameMap[   grey50                   ] = L"grey50"                ;   // 0xFF7F7F7F   //  127;127;127    ColorNames::nameMap[   grey51                   ] = L"grey51"                ;   // 0xFF828282   //  130;130;130    ColorNames::nameMap[   grey52                   ] = L"grey52"                ;   // 0xFF858585   //  133;133;133    ColorNames::nameMap[   grey53                   ] = L"grey53"                ;   // 0xFF878787   //  135;135;135    ColorNames::nameMap[   grey54                   ] = L"grey54"                ;   // 0xFF8A8A8A   //  138;138;138    ColorNames::nameMap[   grey55                   ] = L"grey55"                ;   // 0xFF8C8C8C   //  140;140;140    ColorNames::nameMap[   grey56                   ] = L"grey56"                ;   // 0xFF8F8F8F   //  143;143;143    ColorNames::nameMap[   grey57                   ] = L"grey57"                ;   // 0xFF919191   //  145;145;145    ColorNames::nameMap[   grey58                   ] = L"grey58"                ;   // 0xFF949494   //  148;148;148    ColorNames::nameMap[   grey59                   ] = L"grey59"                ;   // 0xFF969696   //  150;150;150    ColorNames::nameMap[   grey60                   ] = L"grey60"                ;   // 0xFF999999   //  153;153;153    ColorNames::nameMap[   grey61                   ] = L"grey61"                ;   // 0xFF9C9C9C   //  156;156;156    ColorNames::nameMap[   grey62                   ] = L"grey62"                ;   // 0xFF9E9E9E   //  158;158;158    ColorNames::nameMap[   grey63                   ] = L"grey63"                ;   // 0xFFA1A1A1   //  161;161;161    ColorNames::nameMap[   grey64                   ] = L"grey64"                ;   // 0xFFA3A3A3   //  163;163;163    ColorNames::nameMap[   grey65                   ] = L"grey65"                ;   // 0xFFA6A6A6   //  166;166;166    ColorNames::nameMap[   grey66                   ] = L"grey66"                ;   // 0xFFA8A8A8   //  168;168;168    ColorNames::nameMap[   grey67                   ] = L"grey67"                ;   // 0xFFABABAB   //  171;171;171    ColorNames::nameMap[   grey68                   ] = L"grey68"                ;   // 0xFFADADAD   //  173;173;173    ColorNames::nameMap[   grey69                   ] = L"grey69"                ;   // 0xFFB0B0B0   //  176;176;176    ColorNames::nameMap[   grey70                   ] = L"grey70"                ;   // 0xFFB3B3B3   //  179;179;179    ColorNames::nameMap[   grey71                   ] = L"grey71"                ;   // 0xFFB5B5B5   //  181;181;181    ColorNames::nameMap[   grey72                   ] = L"grey72"                ;   // 0xFFB8B8B8   //  184;184;184    ColorNames::nameMap[   grey73                   ] = L"grey73"                ;   // 0xFFBABABA   //  186;186;186    ColorNames::nameMap[   grey74                   ] = L"grey74"                ;   // 0xFFBDBDBD   //  189;189;189    ColorNames::nameMap[   grey75                   ] = L"grey75"                ;   // 0xFFBFBFBF   //  191;191;191    ColorNames::nameMap[   grey76                   ] = L"grey76"                ;   // 0xFFC2C2C2   //  194;194;194    ColorNames::nameMap[   grey77                   ] = L"grey77"                ;   // 0xFFC4C4C4   //  196;196;196    ColorNames::nameMap[   grey78                   ] = L"grey78"                ;   // 0xFFC7C7C7   //  199;199;199    ColorNames::nameMap[   grey79                   ] = L"grey79"                ;   // 0xFFC9C9C9   //  201;201;201    ColorNames::nameMap[   grey80                   ] = L"grey80"                ;   // 0xFFCCCCCC   //  204;204;204    ColorNames::nameMap[   grey81                   ] = L"grey81"                ;   // 0xFFCFCFCF   //  207;207;207    ColorNames::nameMap[   grey82                   ] = L"grey82"                ;   // 0xFFD1D1D1   //  209;209;209    ColorNames::nameMap[   grey83                   ] = L"grey83"                ;   // 0xFFD4D4D4   //  212;212;212    ColorNames::nameMap[   grey84                   ] = L"grey84"                ;   // 0xFFD6D6D6   //  214;214;214    ColorNames::nameMap[   grey85                   ] = L"grey85"                ;   // 0xFFD9D9D9   //  217;217;217    ColorNames::nameMap[   grey86                   ] = L"grey86"                ;   // 0xFFDBDBDB   //  219;219;219    ColorNames::nameMap[   grey87                   ] = L"grey87"                ;   // 0xFFDEDEDE   //  222;222;222    ColorNames::nameMap[   grey88                   ] = L"grey88"                ;   // 0xFFE0E0E0   //  224;224;224    ColorNames::nameMap[   grey89                   ] = L"grey89"                ;   // 0xFFE3E3E3   //  227;227;227    ColorNames::nameMap[   grey90                   ] = L"grey90"                ;   // 0xFFE5E5E5   //  229;229;229    ColorNames::nameMap[   grey91                   ] = L"grey91"                ;   // 0xFFE8E8E8   //  232;232;232    ColorNames::nameMap[   grey92                   ] = L"grey92"                ;   // 0xFFEBEBEB   //  235;235;235    ColorNames::nameMap[   grey93                   ] = L"grey93"                ;   // 0xFFEDEDED   //  237;237;237    ColorNames::nameMap[   grey94                   ] = L"grey94"                ;   // 0xFFF0F0F0   //  240;240;240    ColorNames::nameMap[   grey95                   ] = L"grey95"                ;   // 0xFFF2F2F2   //  242;242;242    ColorNames::nameMap[   grey96                   ] = L"grey96"                ;   // 0xFFF5F5F5   //  245;245;245    ColorNames::nameMap[   grey97                   ] = L"grey97"                ;   // 0xFFF7F7F7   //  247;247;247    ColorNames::nameMap[   grey98                   ] = L"grey98"                ;   // 0xFFFAFAFA   //  250;250;250    ColorNames::nameMap[   grey99                   ] = L"grey99"                ;   // 0xFFFCFCFC   //  252;252;252    ColorNames::nameMap[   grey100                  ] = L"grey100"               ;   // 0xFFFFFFFF   //  255;255;255    //shades of blue    //color name r/g/b hex bg/fg color sample    ColorNames::nameMap[   aliceblue                ] = L"aliceblue"             ;   // 0xFFF0F8FF   //  240;248;255    ColorNames::nameMap[   blueviolet               ] = L"blueviolet"            ;   // 0xFF8A2BE2   //  138;43;226    ColorNames::nameMap[   cadetblue                ] = L"cadetblue"             ;   // 0xFF5F9EA0   //  95;158;160    ColorNames::nameMap[   cadetblue1               ] = L"cadetblue1"            ;   // 0xFF98F5FF   //  152;245;255    ColorNames::nameMap[   cadetblue2               ] = L"cadetblue2"            ;   // 0xFF8EE5EE   //  142;229;238    ColorNames::nameMap[   cadetblue3               ] = L"cadetblue3"            ;   // 0xFF7AC5CD   //  122;197;205    ColorNames::nameMap[   cadetblue4               ] = L"cadetblue4"            ;   // 0xFF53868B   //  83;134;139

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?