The RGBColor interface is used to represent any RGB color value. This interface reflects the values in the underlying style property. Hence, modifications made to the CSSPrimitiveValue objects modify the style property. A specified RGB color is not clipped (even if the number is outside the range 0-255 or 0%-100%). A computed RGB color is clipped depending on the device. Even if a style sheet can only contain an integer for a color value, the internal storage of this integer is a float, and this can be used as a float in the specified or the computed style. A color percentage value can always be converted to a number and vice versa
Наследование: IRgbColor
Пример #1
0
 public void TestPercentageRgb()
 {
     color = new RgbColor("rgb(50%,	12%, 100%)");
             Assert.AreEqual(255*0.5, color.Red.GetFloatValue(CssPrimitiveType.Number));
             Assert.AreEqual(255*0.12, color.Green.GetFloatValue(CssPrimitiveType.Number));
             Assert.AreEqual(255, color.Blue.GetFloatValue(CssPrimitiveType.Number));
 }
Пример #2
0
 public void TestHex()
 {
     color = new RgbColor("#12C2a4  ");
             Assert.AreEqual(18, color.Red.GetFloatValue(CssPrimitiveType.Number));
             Assert.AreEqual(194, color.Green.GetFloatValue(CssPrimitiveType.Number));
             Assert.AreEqual(164, color.Blue.GetFloatValue(CssPrimitiveType.Number));
 }
Пример #3
0
    public void TestCssNames()
    {
        Hashtable table = new Hashtable();
                table.Add("maroon", "#800000");
                table.Add("red", "#ff0000");
                table.Add("orange", "#ffA500");
                table.Add("yellow", "#ffff00");
                table.Add("olive", "#808000");
                table.Add("purple", "#800080");
                table.Add("fuchsia", "#ff00ff");
                table.Add("white", "#ffffff");
                table.Add("lime", "#00ff00");
                table.Add("green", "#008000");
                table.Add("navy", "#000080");
                table.Add("blue", "#0000ff");
                table.Add("aqua", "#00ffff");
                table.Add("teal", "#008080");
                table.Add("black", "#000000");
                table.Add("silver", "#c0c0c0");
                table.Add("gray", "#808080");

                IEnumerator colorEnum = table.Keys.GetEnumerator();
                while(colorEnum.MoveNext())
                {
                    string name = (string)colorEnum.Current;
                    string hexColor = (string)table[name];

                    color = new RgbColor(name);
                    RgbColor color2 = new RgbColor(hexColor);

                    Assert.AreEqual(color2.Red.GetFloatValue(CssPrimitiveType.Number), color.Red.GetFloatValue(CssPrimitiveType.Number), name + " red");
                    Assert.AreEqual(color2.Green.GetFloatValue(CssPrimitiveType.Number), color.Green.GetFloatValue(CssPrimitiveType.Number), name + " green");
                    Assert.AreEqual(color2.Blue.GetFloatValue(CssPrimitiveType.Number), color.Blue.GetFloatValue(CssPrimitiveType.Number), name + " blue");
                }
    }
Пример #4
0
 public void TestAbsoluteRgb()
 {
     color = new RgbColor("rgb( 100  ,	123,15)");
             Assert.AreEqual(100, color.Red.GetFloatValue(CssPrimitiveType.Number));
             Assert.AreEqual(123, color.Green.GetFloatValue(CssPrimitiveType.Number));
             Assert.AreEqual(15, color.Blue.GetFloatValue(CssPrimitiveType.Number));
 }
Пример #5
0
        public void TestColorRgbPercValue()
        {
            CssPrimitiveValue primValue = (CssPrimitiveValue)colorRules.GetPropertyCssValue("rgbperc");

            Assert.AreEqual("rgb(59,115,171)", primValue.CssText);
            Assert.AreEqual(CssValueType.PrimitiveValue, primValue.CssValueType);
            Assert.AreEqual(CssPrimitiveType.RgbColor, primValue.PrimitiveType);
            RgbColor color = (RgbColor)primValue.GetRgbColorValue();

            Assert.AreEqual(0.23 * 255, color.Red.GetFloatValue(CssPrimitiveType.Number));
            Assert.AreEqual(0.45 * 255, color.Green.GetFloatValue(CssPrimitiveType.Number));
            Assert.AreEqual(0.67 * 255, color.Blue.GetFloatValue(CssPrimitiveType.Number));
        }
Пример #6
0
        public void TestColorRgbAbsValue()
        {
            CssPrimitiveValue primValue = (CssPrimitiveValue)colorRules.GetPropertyCssValue("rgbabs");

            Assert.AreEqual("rgb(45,78,98)", primValue.CssText);
            Assert.AreEqual(CssValueType.PrimitiveValue, primValue.CssValueType);
            Assert.AreEqual(CssPrimitiveType.RgbColor, primValue.PrimitiveType);
            RgbColor color = (RgbColor)primValue.GetRgbColorValue();

            Assert.AreEqual(45, color.Red.GetFloatValue(CssPrimitiveType.Number));
            Assert.AreEqual(78, color.Green.GetFloatValue(CssPrimitiveType.Number));
            Assert.AreEqual(98, color.Blue.GetFloatValue(CssPrimitiveType.Number));
        }
Пример #7
0
        public void TestColorShortHexValue()
        {
            CssPrimitiveValue primValue = (CssPrimitiveValue)colorRules.GetPropertyCssValue("shorthex");

            Assert.AreEqual("rgb(17,34,51)", primValue.CssText);
            Assert.AreEqual(CssValueType.PrimitiveValue, primValue.CssValueType);
            Assert.AreEqual(CssPrimitiveType.RgbColor, primValue.PrimitiveType);
            RgbColor color = (RgbColor)primValue.GetRgbColorValue();

            Assert.AreEqual(17, color.Red.GetFloatValue(CssPrimitiveType.Number));
            Assert.AreEqual(34, color.Green.GetFloatValue(CssPrimitiveType.Number));
            Assert.AreEqual(51, color.Blue.GetFloatValue(CssPrimitiveType.Number));
        }
Пример #8
0
        public void TestColorLongHexValue()
        {
            CssValue val = (CssValue)colorRules.GetPropertyCssValue("longhex");

            Assert.IsTrue(val is CssPrimitiveValue, "1");
            CssPrimitiveValue primValue = (CssPrimitiveValue)colorRules.GetPropertyCssValue("longhex");

            Assert.AreEqual("rgb(101,67,33)", primValue.CssText, "2");
            Assert.AreEqual(CssValueType.PrimitiveValue, primValue.CssValueType, "3");
            Assert.AreEqual(CssPrimitiveType.RgbColor, primValue.PrimitiveType, "4");
            RgbColor color = (RgbColor)primValue.GetRgbColorValue();

            Assert.AreEqual(101, color.Red.GetFloatValue(CssPrimitiveType.Number), "5");
            Assert.AreEqual(67, color.Green.GetFloatValue(CssPrimitiveType.Number), "6");
            Assert.AreEqual(33, color.Blue.GetFloatValue(CssPrimitiveType.Number), "7");
            Assert.AreEqual(ColorTranslator.FromHtml("#654321"), color.GdiColor, "8");
        }
Пример #9
0
        public void TestColorNameValue()
        {
            CssPrimitiveValue primValue = (CssPrimitiveValue)colorRules.GetPropertyCssValue("name");

            Assert.AreEqual("rgb(60,179,113)", primValue.CssText);
            Assert.AreEqual(CssValueType.PrimitiveValue, primValue.CssValueType);
            Assert.AreEqual(CssPrimitiveType.RgbColor, primValue.PrimitiveType);
            RgbColor color = (RgbColor)primValue.GetRgbColorValue();

            Assert.AreEqual(60, color.Red.GetFloatValue(CssPrimitiveType.Number));
            Assert.AreEqual(179, color.Green.GetFloatValue(CssPrimitiveType.Number));
            Assert.AreEqual(113, color.Blue.GetFloatValue(CssPrimitiveType.Number));

            primValue = (CssPrimitiveValue)colorRules.GetPropertyCssValue("grey-name");
            color     = (RgbColor)primValue.GetRgbColorValue();
            Assert.AreEqual(119, color.Red.GetFloatValue(CssPrimitiveType.Number));
            Assert.AreEqual(136, color.Green.GetFloatValue(CssPrimitiveType.Number));
            Assert.AreEqual(153, color.Blue.GetFloatValue(CssPrimitiveType.Number));
        }
Пример #10
0
 protected internal override void _setCssText(string cssText)
 {
     colorValue = new RgbColor(cssText);
     _setType(CssPrimitiveType.RgbColor);
 }
Пример #11
0
 public void TestShortHex()
 {
     color = new RgbColor("  #C8f");
             Assert.AreEqual(204, color.Red.GetFloatValue(CssPrimitiveType.Number));
             Assert.AreEqual(136, color.Green.GetFloatValue(CssPrimitiveType.Number));
             Assert.AreEqual(255, color.Blue.GetFloatValue(CssPrimitiveType.Number));
 }
Пример #12
0
        public void SetColor(SvgColorType colorType, string rgbColor, string iccColor )
        {
            _colorType = colorType;
            if(rgbColor != null && rgbColor.Length > 0)
            {
                try
                {
                    _rgbColor = new RgbColor(rgbColor);
                }
                catch(DomException domExc)
                {
                    throw new SvgException(SvgExceptionType.SvgInvalidValueErr, "Invalid color value: " + rgbColor, domExc);
                }
            }
            else
            {
                _rgbColor = new RgbColor("black");
            }

            ///TODO: deal with ICC colors
        }
Пример #13
0
 protected internal override void _setCssText(string cssText)
 {
     colorValue = new RgbColor(cssText);
     _setType(CssPrimitiveType.RgbColor);
 }