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 + -
显示快捷键?