Example #1
0
        public static Color ToColor(this ColorComponent Value, ColorComponent Component)
        {
            ColorComponent finalValue;

            switch (Component)
            {
            case ColorComponent.Ink:

                finalValue = Value;
                break;

            case ColorComponent.Paper:

                finalValue = (ColorComponent)((byte)(Value & ColorComponent.Paper) >> 3) | (Value & ColorComponent.Bright);
                break;

            default:

                return(Color.Transparent);
            }

            switch (finalValue & ColorComponent.Ink)
            {
            case ColorComponent.InkBlack:

                return(Color.Black);

            case ColorComponent.InkBlue:

                return(Value.HasFlag(ColorComponent.Bright) ? Color.FromArgb(0, 0, 255) : Color.FromArgb(0, 0, 192));

            case ColorComponent.InkRed:

                return(Value.HasFlag(ColorComponent.Bright) ? Color.FromArgb(255, 0, 0) : Color.FromArgb(192, 0, 0));

            case ColorComponent.InkFuchsia:

                return(Value.HasFlag(ColorComponent.Bright) ? Color.FromArgb(255, 0, 255) : Color.FromArgb(192, 0, 192));

            case ColorComponent.InkGreen:

                return(Value.HasFlag(ColorComponent.Bright) ? Color.FromArgb(0, 255, 0) : Color.FromArgb(0, 192, 0));

            case ColorComponent.InkCyan:

                return(Value.HasFlag(ColorComponent.Bright) ? Color.FromArgb(0, 255, 255) : Color.FromArgb(0, 192, 192));

            case ColorComponent.InkYellow:

                return(Value.HasFlag(ColorComponent.Bright) ? Color.FromArgb(255, 255, 0) : Color.FromArgb(192, 192, 0));

            case ColorComponent.InkWhite:

                return(Value.HasFlag(ColorComponent.Bright) ? Color.FromArgb(255, 255, 255) : Color.FromArgb(192, 192, 192));
            }

            return(Color.Transparent);
        }