private void ResetHSLRGB() { int red, green, blue; switch (_baseColorComponent) { case ColorComponent.Hue: _hsb.S = _markerX / 255.0; _hsb.B = 1.0 - _markerY / 255.0; _rgb = AdobeColors.HSB_to_RGB(_hsb); break; case ColorComponent.Saturation: _hsb.H = _markerX / 255.0; _hsb.B = 1.0 - _markerY / 255.0; _rgb = AdobeColors.HSB_to_RGB(_hsb); break; case ColorComponent.Brightness: _hsb.H = _markerX / 255.0; _hsb.S = 1.0 - _markerY / 255.0; _rgb = AdobeColors.HSB_to_RGB(_hsb); break; case ColorComponent.Red: blue = _markerX; green = 255 - _markerY; _rgb = Color.FromArgb(_rgb.R, green, blue); _hsb = AdobeColors.RGB_to_HSB(_rgb); break; case ColorComponent.Green: blue = _markerX; red = 255 - _markerY; _rgb = Color.FromArgb(red, _rgb.G, blue); _hsb = AdobeColors.RGB_to_HSB(_rgb); break; case ColorComponent.Blue: red = _markerX; green = 255 - _markerY; _rgb = Color.FromArgb(red, green, _rgb.B); _hsb = AdobeColors.RGB_to_HSB(_rgb); break; } }
private AdobeColors.HSB GetColor(int x, int y) { AdobeColors.HSB _hsb = new AdobeColors.HSB(); switch (_baseColorComponent) { case ColorComponent.Hue: _hsb.H = _hsb.H; _hsb.S = x / 255.0; _hsb.B = 1.0 - y / 255.0; break; case ColorComponent.Saturation: _hsb.S = _hsb.S; _hsb.H = x / 255.0; _hsb.B = 1.0 - (double)y / 255; break; case ColorComponent.Brightness: _hsb.B = _hsb.B; _hsb.H = x / 255.0; _hsb.S = 1.0 - (double)y / 255; break; case ColorComponent.Red: _hsb = AdobeColors.RGB_to_HSB(Color.FromArgb(_rgb.R, 255 - y, x)); break; case ColorComponent.Green: _hsb = AdobeColors.RGB_to_HSB(Color.FromArgb(255 - y, _rgb.G, x)); break; case ColorComponent.Blue: _hsb = AdobeColors.RGB_to_HSB(Color.FromArgb(x, 255 - y, _rgb.B)); break; } return(_hsb); }
/// <summary> /// Resets the controls color (both HSL and RGB variables) based on the current slider position /// </summary> private void ResetHSLRGB() { int height = this.Height - 9; switch (_baseColorComponent) { case ColorComponent.Hue: _hsb.H = 1.0 - (double)_markerStartY / height; _rgb = AdobeColors.HSB_to_RGB(_hsb); break; case ColorComponent.Saturation: _hsb.S = 1.0 - (double)_markerStartY / height; _rgb = AdobeColors.HSB_to_RGB(_hsb); break; case ColorComponent.Brightness: _hsb.B = 1.0 - (double)_markerStartY / height; _rgb = AdobeColors.HSB_to_RGB(_hsb); break; case ColorComponent.Red: _rgb = Color.FromArgb(255 - (int)Math.Round(255 * (double)_markerStartY / height), _rgb.G, _rgb.B); _hsb = AdobeColors.RGB_to_HSB(_rgb); break; case ColorComponent.Green: _rgb = Color.FromArgb(_rgb.R, 255 - (int)Math.Round(255 * (double)_markerStartY / height), _rgb.B); _hsb = AdobeColors.RGB_to_HSB(_rgb); break; case ColorComponent.Blue: _rgb = Color.FromArgb(_rgb.R, _rgb.G, 255 - (int)Math.Round(255 * (double)_markerStartY / height)); _hsb = AdobeColors.RGB_to_HSB(_rgb); break; } }