private static void GenerateXyyColors(Bitmap bitmap, double bigY) { double width = bitmap.Width - 1; double height = bitmap.Width - 1; for (int y = 0; y < bitmap.Height; y++) { for (int x = 0; x <= y; x++) { double cx = (x + 0.5) / width; double cy = 1.0 - (y + 0.5) / height; ColorVector colorVector = new ColorVector() { Component1 = cx, Component2 = cy, Component3 = bigY }; colorVector.ConvertXyyToLinearSRgb(); if (colorVector.IsCanonical()) { colorVector.ConvertLinearSRgbToSRgb(); bitmap.SetPixel(x, y, colorVector.ToColor()); } } } }