private void btnUpdatexyY_Click(object sender, RoutedEventArgs e) { SetOutOfGamut(false); double x = double.Parse(txtxyY_x.Text); double y = double.Parse(txtxyY_y.Text); double Y = double.Parse(txtxyY_Y.Text); xyYColour xyYCol = xyYColour.FromxyY(x, y, Y); XYZColour xyzColour = xyYCol.ToXYZColour(); RGBColour rgbColour = ColourUtil.XYZTosRGB(xyzColour); txtR.Text = rgbColour.R.ToString(); txtG.Text = rgbColour.G.ToString(); txtB.Text = rgbColour.B.ToString(); txtXYZ_X.Text = xyzColour.X.ToString(); txtXYZ_Y.Text = xyzColour.Y.ToString(); txtXYZ_Z.Text = xyzColour.Z.ToString(); Color newColourForRectangle = Color.FromRgb((byte)rgbColour.R, (byte)rgbColour.G, (byte)rgbColour.B); SolidColorBrush brush = new SolidColorBrush(newColourForRectangle); rectColour.Fill = brush; SetOutOfGamut(rgbColour.OutOfGamut); }
private Color GetColorFromXYY(xyYColour xyy) { XYZColour xyz = xyy.ToXYZColour(); RGBColour rgb = ColourUtil.XYZTosRGB(xyz); Color color = Color.FromRgb((byte)rgb.R, (byte)rgb.G, (byte)rgb.B); return(color); }
private bool IsOutOfGamut(xyYColour xyy) { double x = Math.Round(xyy.x, 5, MidpointRounding.ToEven); double y = Math.Round(xyy.y, 5, MidpointRounding.ToEven); xyYColour temp = xyYColour.FromxyY(x, y, xyy.Y); XYZColour xyz = temp.ToXYZColour(); RGBColour rgb = ColourUtil.XYZTosRGB(xyz); return(rgb.OutOfGamut); }
private Color GetColorFromXYY(xyYColour xyy) { double x = Math.Round(xyy.x, 5, MidpointRounding.ToEven); double y = Math.Round(xyy.y, 5, MidpointRounding.ToEven); xyYColour temp = xyYColour.FromxyY(x, y, xyy.Y); XYZColour xyz = temp.ToXYZColour(); RGBColour rgb = ColourUtil.XYZTosRGB(xyz); Color color = Color.FromArgb(0, (byte)rgb.R, (byte)rgb.G, (byte)rgb.B); return(color); }