Example #1
0
        public void ToRgb()
        {
            foreach (HtmlColorSample sample in HtmlColorSamples.All)
            {
                double c = sample.Cmy.Cyan;
                double m = sample.Cmy.Magenta;
                double y = sample.Cmy.Yellow;

                CmyColor cmy = new CmyColor(c, m, y);

                int r1 = sample.Rgb.Red;
                int g1 = sample.Rgb.Green;
                int b1 = sample.Rgb.Blue;

                ColorUtils.CmyToRgb(c, m, y, out byte r2, out byte g2, out byte b2);
                Assert.AreEqual(r1.ToString("N8"), r2.ToString("N8"), "#1 Red (" + sample.Name + ")");
                Assert.AreEqual(g1.ToString("N8"), g2.ToString("N8"), "#1 Green (" + sample.Name + ")");
                Assert.AreEqual(b1.ToString("N8"), b2.ToString("N8"), "#1 Blue (" + sample.Name + ")");

                RgbColor rgb1 = ColorUtils.CmyToRgb(c, m, y);
                Assert.AreEqual(r1.ToString("N8"), rgb1.Red.ToString("N8"), "#2 Red (" + sample.Name + ")");
                Assert.AreEqual(g1.ToString("N8"), rgb1.Green.ToString("N8"), "#2 Green (" + sample.Name + ")");
                Assert.AreEqual(b1.ToString("N8"), rgb1.Blue.ToString("N8"), "#2 Blue (" + sample.Name + ")");

                RgbColor rgb2 = ColorUtils.CmyToRgb(cmy);
                Assert.AreEqual(r1.ToString("N8"), rgb2.Red.ToString("N8"), "#3 Red (" + sample.Name + ")");
                Assert.AreEqual(g1.ToString("N8"), rgb2.Green.ToString("N8"), "#3 Green (" + sample.Name + ")");
                Assert.AreEqual(b1.ToString("N8"), rgb2.Blue.ToString("N8"), "#3 Blue (" + sample.Name + ")");

                RgbColor rgb3 = cmy.ToRgb();
                Assert.AreEqual(r1.ToString("N8"), rgb3.Red.ToString("N8"), "#3 Red (" + sample.Name + ")");
                Assert.AreEqual(g1.ToString("N8"), rgb3.Green.ToString("N8"), "#3 Green (" + sample.Name + ")");
                Assert.AreEqual(b1.ToString("N8"), rgb3.Blue.ToString("N8"), "#3 Blue (" + sample.Name + ")");
            }
        }
Example #2
0
        public void ToCmy()
        {
            foreach (HtmlColorSample sample in HtmlColorSamples.All)
            {
                double h = sample.Hsv.Hue / 360d;
                double s = sample.Hsv.Saturation;
                double v = sample.Hsv.Value;

                HsvColor hsv = new HsvColor(h, s, v);

                double c1 = sample.Cmy.Cyan;
                double m1 = sample.Cmy.Magenta;
                double y1 = sample.Cmy.Yellow;

                ColorUtils.HsvToCmy(h, s, v, out double c2, out double m2, out double y2);
                Assert.AreEqual(c1.ToString("N2"), c2.ToString("N2"), "#1 C (" + sample.Name + ")");
                Assert.AreEqual(m1.ToString("N2"), m2.ToString("N2"), "#1 M (" + sample.Name + ")");
                Assert.AreEqual(y1.ToString("N2"), y2.ToString("N2"), "#1 Y (" + sample.Name + ")");

                CmyColor cmy1 = ColorUtils.HsvToCmy(h, s, v);
                Assert.AreEqual(c1.ToString("N2"), cmy1.C.ToString("N2"), "#2 C (" + sample.Name + ")");
                Assert.AreEqual(m1.ToString("N2"), cmy1.M.ToString("N2"), "#2 M (" + sample.Name + ")");
                Assert.AreEqual(y1.ToString("N2"), cmy1.Y.ToString("N2"), "#2 Y (" + sample.Name + ")");

                CmyColor cmy2 = ColorUtils.HsvToCmy(hsv);
                Assert.AreEqual(c1.ToString("N2"), cmy2.C.ToString("N2"), "#3 C (" + sample.Name + ")");
                Assert.AreEqual(m1.ToString("N2"), cmy2.M.ToString("N2"), "#3 M (" + sample.Name + ")");
                Assert.AreEqual(y1.ToString("N2"), cmy2.Y.ToString("N2"), "#3 Y (" + sample.Name + ")");

                CmyColor cmy3 = hsv.ToCmy();
                Assert.AreEqual(c1.ToString("N2"), cmy3.C.ToString("N2"), "#4 C (" + sample.Name + ")");
                Assert.AreEqual(m1.ToString("N2"), cmy3.M.ToString("N2"), "#4 M (" + sample.Name + ")");
                Assert.AreEqual(y1.ToString("N2"), cmy3.Y.ToString("N2"), "#4 Y (" + sample.Name + ")");
            }
        }
 public override void Transform()
 {
     for (var i = 0; i < Length; i += ByteCount)
     {
         var cmyColor = new CmyColor(Color.FromArgb(this[i + RedIndex], this[i + GreenIndex], this[i]));
         this[i] = componentValue;
         this[i + GreenIndex] = (byte)cmyColor.Magenta;
         this[i + RedIndex]   = (byte)cmyColor.Cyan;
     }
 }
Example #4
0
 public override void Transform()
 {
     for (var i = 0; i < Length; i += ByteCount)
     {
         var cmyColor = new CmyColor(this[i + CyanIndex], this[i + YellowIndex], this[i]);
         this[i] = (byte)cmyColor.Blue;
         this[i + YellowIndex] = (byte)cmyColor.Green;
         this[i + CyanIndex]   = (byte)cmyColor.Red;
     }
 }
Example #5
0
        public void CmyTo()
        {
            CmyColor cmy = new CmyColor(0.05882352941176472, 0.027450980392156876, 0, 0.5);

            Assert.AreEqual(0.5, cmy.ToCmy().Alpha, "To CMY");

            Assert.AreEqual(0.5, cmy.ToCmyk().Alpha, "To CMYK");

            Assert.AreEqual(0.5, cmy.ToHsl().Alpha, "To HSL");

            Assert.AreEqual(0.5, cmy.ToHsv().Alpha, "To HSV");

            Assert.AreEqual(0.5, cmy.ToRgb().Alpha, "To RGB");
        }
Example #6
0
        public void ToCmy()
        {
            foreach (HtmlColorSample sample in HtmlColorSamples.All)
            {
                if (sample.Cmy == null)
                {
                    continue;
                }

                int r = sample.Rgb.Red;
                int g = sample.Rgb.Green;
                int b = sample.Rgb.Blue;

                RgbColor rgb = new RgbColor(r, g, b);

                double c1 = sample.Cmy.Cyan;
                double m1 = sample.Cmy.Magenta;
                double y1 = sample.Cmy.Yellow;

                ColorUtils.RgbToCmy(r, g, b, out double c2, out double m2, out double y2);
                Assert.AreEqual(c1.ToString("N2"), c2.ToString("N2"), "#1 C (" + sample.Name + ")");
                Assert.AreEqual(m1.ToString("N2"), m2.ToString("N2"), "#1 M (" + sample.Name + ")");
                Assert.AreEqual(y1.ToString("N2"), y2.ToString("N2"), "#1 Y (" + sample.Name + ")");

                CmyColor cmy1 = ColorUtils.RgbToCmy(r, g, b);
                Assert.AreEqual(c1.ToString("N2"), cmy1.C.ToString("N2"), "#2 C (" + sample.Name + ")");
                Assert.AreEqual(m1.ToString("N2"), cmy1.M.ToString("N2"), "#2 M (" + sample.Name + ")");
                Assert.AreEqual(y1.ToString("N2"), cmy1.Y.ToString("N2"), "#2 Y (" + sample.Name + ")");

                ColorUtils.RgbToCmy(rgb, out double c3, out double m3, out double y3);
                Assert.AreEqual(c1.ToString("N2"), c3.ToString("N2"), "#3 C (" + sample.Name + ")");
                Assert.AreEqual(m1.ToString("N2"), m3.ToString("N2"), "#3 M (" + sample.Name + ")");
                Assert.AreEqual(y1.ToString("N2"), y3.ToString("N2"), "#3 Y (" + sample.Name + ")");

                CmyColor cmy2 = ColorUtils.RgbToCmy(rgb);
                Assert.AreEqual(c1.ToString("N2"), cmy2.C.ToString("N2"), "#4 C (" + sample.Name + ")");
                Assert.AreEqual(m1.ToString("N2"), cmy2.M.ToString("N2"), "#4 M (" + sample.Name + ")");
                Assert.AreEqual(y1.ToString("N2"), cmy2.Y.ToString("N2"), "#4 Y (" + sample.Name + ")");

                CmyColor cmy3 = rgb.ToCmy();
                Assert.AreEqual(c1.ToString("N2"), cmy3.C.ToString("N2"), "#5 C (" + sample.Name + ")");
                Assert.AreEqual(m1.ToString("N2"), cmy3.M.ToString("N2"), "#5 M (" + sample.Name + ")");
                Assert.AreEqual(y1.ToString("N2"), cmy3.Y.ToString("N2"), "#5 Y (" + sample.Name + ")");
            }
        }
Example #7
0
        public void ToCmyk()
        {
            foreach (HtmlColorSample sample in HtmlColorSamples.All)
            {
                double c = sample.Cmy.Cyan;
                double m = sample.Cmy.Magenta;
                double y = sample.Cmy.Yellow;

                CmyColor cmy = new CmyColor(c, m, y);

                double c1 = sample.Cmyk.Cyan;
                double m1 = sample.Cmyk.Magenta;
                double y1 = sample.Cmyk.Yellow;
                double k1 = sample.Cmyk.Key;

                ColorUtils.CmyToCmyk(c, m, y, out double c2, out double m2, out double y2, out double k2);
                Assert.AreEqual(c1.ToString("N8"), c2.ToString("N8"), "#1 Cyan (" + sample.Name + ")");
                Assert.AreEqual(m1.ToString("N8"), m2.ToString("N8"), "#1 Magenta (" + sample.Name + ")");
                Assert.AreEqual(y1.ToString("N8"), y2.ToString("N8"), "#1 Yellow (" + sample.Name + ")");
                Assert.AreEqual(k1.ToString("N8"), k2.ToString("N8"), "#1 Key (" + sample.Name + ")");

                CmykColor cmyk1 = ColorUtils.CmyToCmyk(c, m, y);
                Assert.AreEqual(c1.ToString("N8"), cmyk1.Cyan.ToString("N8"), "#2 Cyan (" + sample.Name + ")");
                Assert.AreEqual(m1.ToString("N8"), cmyk1.Magenta.ToString("N8"), "#2 Magenta (" + sample.Name + ")");
                Assert.AreEqual(y1.ToString("N8"), cmyk1.Yellow.ToString("N8"), "#2 Yellow (" + sample.Name + ")");
                Assert.AreEqual(k1.ToString("N8"), cmyk1.Key.ToString("N8"), "#2 Key (" + sample.Name + ")");

                CmykColor cmyk2 = ColorUtils.CmyToCmyk(cmy);
                Assert.AreEqual(c1.ToString("N8"), cmyk2.Cyan.ToString("N8"), "#3 Cyan (" + sample.Name + ")");
                Assert.AreEqual(m1.ToString("N8"), cmyk2.Magenta.ToString("N8"), "#3 Magenta (" + sample.Name + ")");
                Assert.AreEqual(y1.ToString("N8"), cmyk2.Yellow.ToString("N8"), "#3 Yellow (" + sample.Name + ")");
                Assert.AreEqual(k1.ToString("N8"), cmyk2.Key.ToString("N8"), "#2 Key (" + sample.Name + ")");

                CmykColor cmyk3 = cmy.ToCmyk();
                Assert.AreEqual(c1.ToString("N8"), cmyk3.Cyan.ToString("N8"), "#3 Cyan (" + sample.Name + ")");
                Assert.AreEqual(m1.ToString("N8"), cmyk3.Magenta.ToString("N8"), "#3 Magenta (" + sample.Name + ")");
                Assert.AreEqual(y1.ToString("N8"), cmyk3.Yellow.ToString("N8"), "#3 Yellow (" + sample.Name + ")");
                Assert.AreEqual(k1.ToString("N8"), cmyk3.Key.ToString("N8"), "#2 Key (" + sample.Name + ")");
            }
        }