Beispiel #1
0
        public void CmykColorImplementsEquals()
        {
            CmykColor first  = CmykColor.FromColor(Color.White);
            CmykColor second = CmykColor.FromColor(Color.White);

            first.Equals(second).Should().BeTrue("because the color structure should implement Equals()");
        }
    private static void RgbToCmykWithoutColorManagement()
    {
        RgbColor  rgbColor  = new RgbColor(253, 202, 12);
        CmykColor cmykColor = new CmykColor(rgbColor);

        Console.WriteLine("Without color management: {0} to {1}", rgbColor, cmykColor);
    }
Beispiel #3
0
        /// <summary>
        /// Draw the given symbol to fill the rectange in that graphics.
        /// </summary>
        /// <param name="g">Graphics to draw in.</param>
        /// <param name="color">Color to use for drawing.</param>
        /// <param name="rect">The rectange to fill.</param>
        public void Draw(IGraphicsTarget g, CmykColor color, RectangleF rect)
        {
            Matrix matNew = new Matrix();

            matNew.Translate((rect.Left + rect.Right) / 2.0F, (rect.Top + rect.Bottom) / 2.0F);
            if (kind >= 'T')
            {
                // An instructional directive that spans 8 columns
                matNew.Scale(rect.Width / 1600.0F, -rect.Height / 200.0F);
            }
            else
            {
                // Regular square symbol.
                matNew.Scale(rect.Width / 200.0F, -rect.Height / 200.0F);
            }

            g.PushTransform(matNew);

            for (int i = 0; i < strokes.Length; ++i)
            {
                strokes[i].Draw(g, color);
            }

            g.PopTransform();
        }
    private static void CmykToRgbWithoutColorManagement()
    {
        CmykColor cmykColor = new CmykColor(20, 42, 211, 40);
        RgbColor  rgbColor  = new RgbColor(cmykColor);

        Console.WriteLine("Without color management: {0} to {1}", cmykColor, rgbColor);
    }
    private static void LabToCmykWithColorManagement()
    {
        LabColor labColor = new LabColor(179, -20, 29, 255);

        CmykColor cmykColor = labColor.To <CmykColor>("../../../../_Input/ColorProfiles/ISOcoated_v2_eci.icc");

        Console.WriteLine("With color management: {0} to {1}", labColor, cmykColor);
    }
 public SpecialColorChooser(ComboBox comboBox, Button button, CmykColor purpleColor)
 {
     this.comboBox = comboBox;
     this.button = button;
     this.purpleColor = purpleColor;
     InitColors(purpleColor);
     WireEvents();
     Color = SpecialColor.Black;
 }
Beispiel #7
0
 public SpecialColorChooser(ComboBox comboBox, Button button, CmykColor purpleColor)
 {
     this.comboBox    = comboBox;
     this.button      = button;
     this.purpleColor = purpleColor;
     InitColors(purpleColor);
     WireEvents();
     Color = SpecialColor.Black;
 }
Beispiel #8
0
        public static ICmykColor MakeCMYK(MakeBasicColors.basicColorEnum basicColorEnum_0)
        {
            ICmykColor cmykColorClass = new CmykColor()
            {
                RGB = MakeBasicColors.MakeRGB(basicColorEnum_0).RGB
            };

            return(cmykColorClass);
        }
Beispiel #9
0
        private void ReadColors(BinaryReader reader, Swatch swatch, int count, short version)
        {
            for (int i = 0; i < count; i++)
            {
                var space = (ColorSpace)reader.ReadInt16();
                var item1 = reader.ReadUInt16();
                var item2 = reader.ReadUInt16();
                var item3 = reader.ReadUInt16();
                var item4 = reader.ReadUInt16();

                ColorBase color = null;
                switch (space)
                {
                case ColorSpace.RGB:
                    color = new RgbColor(Convert.ToByte(item1 / 256), Convert.ToByte(item2 / 256), Convert.ToByte(item3 / 256));
                    break;

                case ColorSpace.HSB:
                    color = new HsvColor(item1 / 65535f, item2 / 65535f, item3 / 65535f);
                    break;

                case ColorSpace.Grayscale:
                    color = new GrayColor(item1 / 10000f);
                    break;

                case ColorSpace.CMYK:
                    color = new CmykColor(1f - (item1 / 65535f), 1f - (item2 / 65535f), 1f - (item3 / 65535f), 1f - (item4 / 65535f));
                    break;

                case ColorSpace.WideCMYK:
                    color = new CmykColor(item1 / 10000f, item2 / 10000f, item3 / 10000f, item4 / 10000f);
                    break;

                case ColorSpace.Lab:
                    color = new LabColor((short)(item1 / 100), (short)(item2 / 100), (short)(item3 / 100));
                    break;

                default:
                    break;
                }

                if (version == 2)
                {
                    reader.ReadBytes(2);
                    var nameLength = reader.ReadInt16() * 2;
                    if (nameLength > 0)
                    {
                        var nameBuffer = reader.ReadBytes(nameLength);
                        color.Name = Encoding.BigEndianUnicode.GetString(nameBuffer, 0, nameLength - 2);
                    }
                }

                swatch.Colors.Add(color);
            }
        }
Beispiel #10
0
        internal static ICmyk TranslateColor(IRgb rgb, Uri cmykProfile, Uri rgbProfile)
        {
            const double dividend    = 65535;
            var          profileName = new StringBuilder(256);
            var          size        = (uint)profileName.Capacity * 2;

            ProfileFilename sRgbFilename;

            if (rgbProfile == null)
            {
                GetStandardColorSpaceProfile(0, LogicalColorSpace.SRgb, profileName, ref size);
                sRgbFilename = new ProfileFilename(profileName.ToString());
            }
            else
            {
                sRgbFilename = new ProfileFilename(rgbProfile.LocalPath);
            }

            var hSRgbProfile = OpenColorProfile(sRgbFilename, ProfileRead, FileShare.Read,
                                                CreateDisposition.OpenExisting);
            var isoCoatedFilename = new ProfileFilename(cmykProfile.LocalPath);
            var hIsoCoatedProfile = OpenColorProfile(isoCoatedFilename, ProfileRead, FileShare.Read,
                                                     CreateDisposition.OpenExisting);

            var profiles  = new[] { hSRgbProfile, hIsoCoatedProfile };
            var intents   = new[] { IntentPerceptual };
            var transform = CreateMultiProfileTransform(profiles, 2, intents, 1, ColorTransformMode.BestMode,
                                                        IndexDontCare);

            var rgbColors = new RgbColor[1];

            rgbColors[0] = new RgbColor();

            var cmykColors = new CmykColor[1];

            cmykColors[0] = new CmykColor();

            rgbColors[0].red   = (ushort)(rgb.R * dividend / 255.0);
            rgbColors[0].green = (ushort)(rgb.G * dividend / 255.0);
            rgbColors[0].blue  = (ushort)(rgb.B * dividend / 255.0);

            TranslateColors(transform, rgbColors, 1, ColorType.Rgb, cmykColors, ColorType.Cmyk);

            DeleteColorTransform(transform);
            CloseColorProfile(hSRgbProfile);
            CloseColorProfile(hIsoCoatedProfile);

            return(new Cmyk
            {
                C = cmykColors[0].cyan / dividend,
                M = cmykColors[0].magenta / dividend,
                Y = cmykColors[0].yellow / dividend,
                K = cmykColors[0].black / dividend
            });
        }
            public void then_should_return_bracketed_cmyk_colors_given_color()
            {
                // Arrange
                var cmyk = CmykColor.FromCmykColor(100f, 100f, 100f, 10f);

                // Act
                var s = cmyk.ToString();

                // Assert
                Assert.That(s, Is.EqualTo("CmykColor [ C=100, M=100, Y=100, K=10]"));
            }
    private static void RgbToCmykWithColorManagement()
    {
        RgbColor rgbColor = new RgbColor(253, 202, 12)
        {
            Profile = ColorProfile.FromSrgb()
        };

        CmykColor cmykColor = rgbColor.To <CmykColor>("../../../../_Input/ColorProfiles/ISOcoated_v2_eci.icc", transformationIntent: ColorTransformationIntent.Perceptual);

        Console.WriteLine("With color management: {0} to {1}", rgbColor, cmykColor);
    }
Beispiel #13
0
        public void CmykColorShouldConvertToAndFromString(string expected)
        {
            Color     color     = ColorTranslator.FromHtml(expected);
            CmykColor cmykColor = CmykColor.FromColor(color);

            Debug.Print(cmykColor.ToString());

            string result = ColorTranslator.ToHtml(cmykColor);

            result.Should().Be(expected);
        }
    private static void CmykToRgbWithColorManagement()
    {
        CmykColor cmykColor = new CmykColor(20, 42, 211, 40)
        {
            Profile = new ColorProfile("../../../../_Input/ColorProfiles/ISOcoated_v2_eci.icc")
        };

        RgbColor rgbColor = cmykColor.To <RgbColor>(ColorProfile.FromSrgb());

        Console.WriteLine("With color management: {0} to {1}", cmykColor, rgbColor);
    }
Beispiel #15
0
 private void InitColors(CmykColor purpleColor)
 {
     comboBox.Items.Add(new ColorAndText(MiscText.Black, SpecialColor.Black, CmykColor.FromCmyk(0, 0, 0, 1)));
     comboBox.Items.Add(new ColorAndText(MiscText.Purple, SpecialColor.Purple, purpleColor));
     comboBox.Items.Add(new ColorAndText(MiscText.Red, CmykColor.FromCmyk(0, 1, 1, 0)));
     comboBox.Items.Add(new ColorAndText(MiscText.Yellow, CmykColor.FromCmyk(0, 0, 1, 0)));
     comboBox.Items.Add(new ColorAndText(MiscText.Green, CmykColor.FromCmyk(1, 0, 1, 0)));
     comboBox.Items.Add(new ColorAndText(MiscText.LightBlue, CmykColor.FromCmyk(1, 0, 0, 0)));
     comboBox.Items.Add(new ColorAndText(MiscText.DarkBlue, CmykColor.FromCmyk(1, 1, 0, 0)));
     comboBox.Items.Add(new ColorAndText(MiscText.CustomColor, null, null));
 }
 public override SD.Color ToColor(CmykColor cmykColor)
 {
     try {
         return CmykToRgbColor(cmykColor);
     }
     catch (Exception) {
         // In some cases, a weirdly installed .NET framework will cause an exception here.
         System.Windows.Forms.MessageBox.Show(MiscText.BadDotNetFramework, MiscText.AppTitle);
         Environment.Exit(1);
         return new SD.Color();
     }
 }
 public override SD.Color ToColor(CmykColor cmykColor)
 {
     try {
         return(CmykToRgbColor(cmykColor));
     }
     catch (Exception) {
         // In some cases, a weirdly installed .NET framework will cause an exception here.
         System.Windows.Forms.MessageBox.Show(MiscText.BadDotNetFramework, MiscText.AppTitle);
         Environment.Exit(1);
         return(new SD.Color());
     }
 }
Beispiel #18
0
        // Create pens and fonts we use.
        void CreateObjects(IGraphicsTarget g)
        {
            CmykColor black = CmykColor.FromCmyk(0, 0, 0, 1);

            blackBrush = new object();
            g.CreateSolidBrush(blackBrush, black);
            thinPen = new object();
            g.CreatePen(thinPen, black, PunchcardAppearance.thinLine, LineCap.Flat, LineJoin.Miter, 5F);
            thickPen = new object();
            g.CreatePen(thickPen, black, PunchcardAppearance.thickLine, LineCap.Flat, LineJoin.Miter, 5F);

            textMetrics = new GDIPlus_TextMetrics();
        }
        public override SWM.Color ToColor(CmykColor cmykColor)
        {
            SWM.Color result;

            if (!cmykToColor.TryGetValue(cmykColor, out result))
            {
                float[] colorValues = { cmykColor.Cyan, cmykColor.Magenta, cmykColor.Yellow, cmykColor.Black };
                result = SWM.Color.FromValues(colorValues, SwopColorConverter.SwopUri);
                cmykToColor[cmykColor] = result;
            }

            return(result);
        }
Beispiel #20
0
        public void CmykTo()
        {
            CmykColor cmyk = new CmykColor(0.05882352941176472, 0.027450980392156876, 0, 0, 0.5);

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

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

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

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

            Assert.AreEqual(0.5, cmyk.ToRgb().Alpha, "To RGB");
        }
Beispiel #21
0
            public void then_should_return_rgba_version_of_cmyk_color_given_red()
            {
                // Arrange
                var cmykColor = CmykColor.FromColor(Color.Red);

                // Act
                var rgbaColor = (RgbaColor)cmykColor;

                // Assert
                Assert.That(rgbaColor.R, Is.EqualTo(255));
                Assert.That(rgbaColor.G, Is.EqualTo(0));
                Assert.That(rgbaColor.B, Is.EqualTo(0));
                Assert.That(rgbaColor.A, Is.EqualTo(255));
            }
Beispiel #22
0
            public void Draw(IGraphicsTarget g, CmykColor color)
            {
                object brush = new object();
                object pen   = new object();

                if (kind == SymbolStrokes.Circle || kind == SymbolStrokes.Polyline || kind == SymbolStrokes.Polygon ||
                    kind == SymbolStrokes.PolyBezier)
                {
                    g.CreatePen(pen, color, thickness, ends, corners, 5);
                }
                else
                {
                    g.CreateSolidBrush(brush, color);
                }

                switch (kind)
                {
                case SymbolStrokes.Disc:
                    g.FillEllipse(brush, points[0], radius, radius);
                    break;

                case SymbolStrokes.Circle:
                    g.DrawEllipse(pen, points[0], radius, radius);
                    break;

                case SymbolStrokes.Polyline:
                    g.DrawPolyline(pen, points);
                    break;

                case SymbolStrokes.Polygon:
                    g.DrawPolygon(pen, points);
                    break;

                case SymbolStrokes.FilledPolygon:
                    g.FillPolygon(brush, points, FillMode.Alternate);
                    break;

                case SymbolStrokes.PolyBezier:
                    g.DrawPath(pen, CreateBezierPath(points));
                    break;

                case SymbolStrokes.FilledPolyBezier:
                    g.FillPath(brush, CreateBezierPath(points));
                    break;

                default:
                    Debug.Fail("Bad SymbolStroke kind");
                    break;
                }
            }
            public void then_should_return_hsla_version_of_cmyk_color_given_red()
            {
                // Arrange
                var cmykColor = CmykColor.FromColor(Color.Red);

                // Act
                var hslaColor = (HslaColor)cmykColor;

                // Assert
                Assert.That(hslaColor.H, Is.EqualTo(0));
                Assert.That(hslaColor.S, Is.EqualTo(1.0f));
                Assert.That(hslaColor.L, Is.EqualTo(.5f));
                Assert.That(hslaColor.A, Is.EqualTo(1.0f));
            }
            public void then_should_return_cmyk_version_of_system_drawing_color_given_red()
            {
                // Arrange
                var color = Color.Red;

                // Act
                CmykColor cmyk = color;

                // Assert
                Assert.That(cmyk.C, Is.EqualTo(0));
                Assert.That(cmyk.M, Is.EqualTo(100));
                Assert.That(cmyk.Y, Is.EqualTo(100));
                Assert.That(cmyk.K, Is.EqualTo(0));
            }
Beispiel #25
0
        private void CustomizeColor(CmykColor color)
        {
            ColorChooserDialog colorChooserDialog = new ColorChooserDialog();

            colorChooserDialog.Color = color;

            if (colorChooserDialog.ShowDialog() == DialogResult.OK)
            {
                Color = new SpecialColor(colorChooserDialog.Color);
            }

            colorChooserDialog.Dispose();
            comboBox.Invalidate();

            SendChangeNotification();
        }
        public LinePropertiesDialog(string dialogTitle, string usageText, CmykColor purpleColor, CourseAppearance appearance)
        {
            InitializeComponent();
            this.appearance = appearance;

            if (!appearance.useDefaultPurple) {
                purpleColor = CmykColor.FromCmyk(appearance.purpleC, appearance.purpleM, appearance.purpleY, appearance.purpleK);
            }

            this.purpleColor = SwopColorConverter.CmykToRgbColor(purpleColor);
            colorChooser = new SpecialColorChooser(comboBoxColor, buttonChangeColor, purpleColor);
            colorChooser.ColorChanged += colorChooser_ColorChanged;
            LineKind = PurplePen.LineKind.Single;
            this.Text = dialogTitle;
            usageLabel.Text = usageText;
        }
Beispiel #27
0
        private ColorBase ReadColorBlock(BinaryReader reader)
        {
            var value1 = 0f;
            var value2 = 0f;
            var value3 = 0f;
            var value4 = 0f;

            var       colorMode = Encoding.ASCII.GetString(reader.ReadBytes(4));
            ColorBase color;

            switch (colorMode)
            {
            case "RGB ":
                value1 = reader.ReadSingle();
                value2 = reader.ReadSingle();
                value3 = reader.ReadSingle();
                color  = new RgbColor(Convert.ToByte(255 * value1), Convert.ToByte(255 * value2), Convert.ToByte(255 * value3));
                break;

            case "CMYK":
                value1 = reader.ReadSingle();
                value2 = reader.ReadSingle();
                value3 = reader.ReadSingle();
                value4 = reader.ReadSingle();
                color  = new CmykColor(value1, value2, value3, value4);
                break;

            case "Gray":
                value1 = reader.ReadSingle();
                color  = new GrayColor(value1);
                break;

            case "LAB ":
                value1 = reader.ReadSingle();
                value2 = reader.ReadSingle();
                value3 = reader.ReadSingle();
                color  = new LabColor(value1 * 100, value2, value3);
                break;

            default:
                throw new InvalidDataException($"Unsupported color mode '{colorMode}'.");
            }

            var colorSpace = (ColorType)reader.ReadInt16();

            return(color);
        }
Beispiel #28
0
        public ChangeText(string title, string explanation, bool allowSpecialTextInsert, CmykColor purpleColor, Func<string, string> textExpander)
            : this()
        {
            InitializeFontList();

            this.textExpander = textExpander;
            this.purpleColor = purpleColor;
            colorChooser = new SpecialColorChooser(comboBoxColor, buttonChangeColor, purpleColor);
            colorChooser.ColorChanged += colorChanged;

            this.Text = title;
            this.usageLabel.Text = explanation;
            if (!allowSpecialTextInsert)
                insertSpecialButton.Visible = false;

            textBoxMain_TextChanged(this, EventArgs.Empty);
        }
        public void ToCmyk()
        {
            foreach (HtmlColorSample sample in HtmlColorSamples.All)
            {
                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.Cmyk.Cyan;
                double m1 = sample.Cmyk.Magenta;
                double y1 = sample.Cmyk.Yellow;
                double k1 = sample.Cmyk.Key;

                ColorUtils.RgbToCmyk(r, g, b, out double c2, out double m2, out double y2, out double k2);
                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 + ")");
                Assert.AreEqual(k1.ToString("N2"), k2.ToString("N2"), "#1 K (" + sample.Name + ")");

                CmykColor cmyk1 = ColorUtils.RgbToCmyk(r, g, b);
                Assert.AreEqual(c1.ToString("N2"), cmyk1.C.ToString("N2"), "#2 C (" + sample.Name + ")");
                Assert.AreEqual(m1.ToString("N2"), cmyk1.M.ToString("N2"), "#2 M (" + sample.Name + ")");
                Assert.AreEqual(y1.ToString("N2"), cmyk1.Y.ToString("N2"), "#2 Y (" + sample.Name + ")");
                Assert.AreEqual(k1.ToString("N2"), cmyk1.K.ToString("N2"), "#2 K (" + sample.Name + ")");

                ColorUtils.RgbToCmyk(rgb, out double c3, out double m3, out double y3, out double k3);
                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 + ")");
                Assert.AreEqual(k1.ToString("N2"), k3.ToString("N2"), "#3 K (" + sample.Name + ")");

                CmykColor cmyk2 = ColorUtils.RgbToCmyk(rgb);
                Assert.AreEqual(c1.ToString("N2"), cmyk2.C.ToString("N2"), "#4 C (" + sample.Name + ")");
                Assert.AreEqual(m1.ToString("N2"), cmyk2.M.ToString("N2"), "#4 M (" + sample.Name + ")");
                Assert.AreEqual(y1.ToString("N2"), cmyk2.Y.ToString("N2"), "#4 Y (" + sample.Name + ")");
                Assert.AreEqual(k1.ToString("N2"), cmyk2.K.ToString("N2"), "#4 K (" + sample.Name + ")");

                CmykColor cmyk3 = rgb.ToCmyk();
                Assert.AreEqual(c1.ToString("N2"), cmyk3.C.ToString("N2"), "#5 C (" + sample.Name + ")");
                Assert.AreEqual(m1.ToString("N2"), cmyk3.M.ToString("N2"), "#5 M (" + sample.Name + ")");
                Assert.AreEqual(y1.ToString("N2"), cmyk3.Y.ToString("N2"), "#5 Y (" + sample.Name + ")");
                Assert.AreEqual(k1.ToString("N2"), cmyk3.K.ToString("N2"), "#5 K (" + sample.Name + ")");
            }
        }
Beispiel #30
0
        // Draw the map and course onto a bitmap of the given size. The given rectangle is mapped onto the whole bitmap, then
        // the given clip region is applied.
        public void Draw(Bitmap bitmap, Matrix transform, Region clipRegion = null)
        {
            Debug.Assert(colorModel == ColorModel.CMYK || colorModel == ColorModel.RGB);
            GDIPlus_ColorConverter colorConverter = (colorModel == ColorModel.CMYK) ? new SwopColorConverter() : new GDIPlus_ColorConverter();

            if (bitmap.Height == 0 || bitmap.Width == 0)
            {
                return;
            }

            // Note that courses always drawn full intensity.
            using (var grTargetDimmed = new GDIPlus_BitmapGraphicsTarget(bitmap, CmykColor.FromCmyk(0, 0, 0, 0), transform, colorConverter, mapIntensity))
                using (var grTargetUndimmed = new GDIPlus_BitmapGraphicsTarget(bitmap, null, transform, colorConverter)) {
                    float      minResolution = GetMinResolution(transform);
                    RectangleF clipBounds    = grTargetDimmed.Graphics.ClipBounds;
                    DrawHelper(grTargetDimmed, grTargetUndimmed, grTargetUndimmed, clipBounds, minResolution);
                }
        }
        public LinePropertiesDialog(string dialogTitle, string usageText, string helpTopic, CmykColor purpleColor, CourseAppearance appearance)
        {
            InitializeComponent();
            this.appearance = appearance;

            if (!appearance.useDefaultPurple)
            {
                purpleColor = CmykColor.FromCmyk(appearance.purpleC, appearance.purpleM, appearance.purpleY, appearance.purpleK);
            }

            this.purpleColor           = SwopColorConverter.CmykToRgbColor(purpleColor);
            colorChooser               = new SpecialColorChooser(comboBoxColor, buttonChangeColor, purpleColor);
            colorChooser.ColorChanged += colorChooser_ColorChanged;
            LineKind        = PurplePen.LineKind.Single;
            this.Text       = dialogTitle;
            this.HelpTopic  = helpTopic;
            usageLabel.Text = usageText;
        }
Beispiel #32
0
        public ChangeText(string title, string explanation, bool allowSpecialTextInsert, CmykColor purpleColor, Func <string, string> textExpander)
            : this()
        {
            InitializeFontList();

            this.textExpander          = textExpander;
            this.purpleColor           = purpleColor;
            colorChooser               = new SpecialColorChooser(comboBoxColor, buttonChangeColor, purpleColor);
            colorChooser.ColorChanged += colorChanged;

            this.Text            = title;
            this.usageLabel.Text = explanation;
            if (!allowSpecialTextInsert)
            {
                insertSpecialButton.Visible = false;
            }

            textBoxMain_TextChanged(this, EventArgs.Empty);
        }
        public static SD.Color CmykToRgbColor(CmykColor cmykColor)
        {
            SD.Color result;

            if (cmykColor.Cyan == 0 && cmykColor.Magenta == 0 && cmykColor.Yellow == 0 && cmykColor.Black == 0)
            {
                // The default mapping doesn't quite map white to pure white.
                if (cmykColor.Alpha == 1)
                {
                    return(SD.Color.White);
                }
                else
                {
                    return(SD.Color.FromArgb((byte)Math.Round(cmykColor.Alpha * 255), SD.Color.White));
                }
            }

            if (cmykColor.Black == 1)
            {
                // The default mapping doesn't quite map black to pure black.
                if (cmykColor.Alpha == 1)
                {
                    return(SD.Color.Black);
                }
                else
                {
                    return(SD.Color.FromArgb((byte)Math.Round(cmykColor.Alpha * 255), SD.Color.Black));
                }
            }

            if (!cmykToColor.TryGetValue(cmykColor, out result))
            {
                float[]   colorValues = { cmykColor.Cyan, cmykColor.Magenta, cmykColor.Yellow, cmykColor.Black };
                SWM.Color color       = SWM.Color.FromValues(colorValues, SwopUri);
                result = SD.Color.FromArgb((byte)Math.Round(cmykColor.Alpha * 255), color.R, color.G, color.B);
                lock (cmykToColor) {
                    cmykToColor[cmykColor] = result;
                }
            }

            return(result);
        }
        public void ToHsl()
        {
            foreach (HtmlColorSample sample in HtmlColorSamples.All)
            {
                double c = sample.Cmyk.Cyan;
                double m = sample.Cmyk.Magenta;
                double y = sample.Cmyk.Yellow;
                double k = sample.Cmyk.Key;

                CmykColor cmyk = new CmykColor(c, m, y, k);

                double h1 = sample.Hsl.Hue / 360;
                double s1 = sample.Hsl.Saturation;
                double l1 = sample.Hsl.Lightness;

                HslColor hsl3 = cmyk.ToHsl();
                Assert.AreEqual(h1.ToString("N2"), hsl3.Hue.ToString("N2"), "#3 Hue (" + sample.Name + ")");
                Assert.AreEqual(s1.ToString("N2"), hsl3.Saturation.ToString("N2"), "#3 Saturation (" + sample.Name + ")");
                Assert.AreEqual(l1.ToString("N2"), hsl3.Lightness.ToString("N2"), "#3 Lightness (" + sample.Name + ")");
            }
        }
        public static SD.Color CmykToRgbColor(CmykColor cmykColor)
        {
            SD.Color result;

            if (cmykColor.Cyan == 0 && cmykColor.Magenta == 0 && cmykColor.Yellow == 0 && cmykColor.Black == 0) {
                // The default mapping doesn't quite map white to pure white.
                if (cmykColor.Alpha == 1)
                    return SD.Color.White;
                else
                    return SD.Color.FromArgb((byte) Math.Round(cmykColor.Alpha * 255), SD.Color.White);
            }

            if (!cmykToColor.TryGetValue(cmykColor, out result)) {
                float[] colorValues = { cmykColor.Cyan, cmykColor.Magenta, cmykColor.Yellow, cmykColor.Black };
                SWM.Color color = SWM.Color.FromValues(colorValues, SwopUri);
                result = SD.Color.FromArgb((byte) Math.Round(cmykColor.Alpha * 255), color.R, color.G, color.B);
                lock (cmykToColor) {
                    cmykToColor[cmykColor] = result;
                }
            }

            return result;
        }
Beispiel #36
0
 public SpecialColor(CmykColor color)
 {
     this.Kind = ColorKind.Custom;
     this.CustomColor = color;
 }
        public void AddRecueil_Table(List<string> columns, List<float> colsWidth, Dictionary<int, List<string>> data, float y, float weight, float height, bool hasHeader, bool NoFirstCell = false, float x = 0, float rowHeight = 12.5f)
        {
            Table table = new Table(x, y, weight, height);
            CmykColor colorBlue = new CmykColor(0.75f, 0.42f, 0f, 0.51f);
            //table.Border.Width = 0.5f;
            table.Border.LineStyle = LineStyle.None;
            table.CellDefault.Border.Width = 0.5f;
            table.CellDefault.Border.Color = RgbColor.Black;
            //table.Border.Color = RgbColor.Black;

            foreach (float w in colsWidth)
            {
                table.Columns.Add(w);
            }

            if (hasHeader)
            {
                Row row = table.Rows.Add(rowHeight, this.Heveltica, 10, RgbColor.White, colorBlue);
                row.CellDefault.VAlign = VAlign.Center;

                foreach (string column in columns)
                {
                    row.Cells.Add(column);
                }

                if (NoFirstCell)
                {
                    row.Cells[0].BackgroundColor = RgbColor.White;
                    //row.Cells[0].Border.Top.LineStyle = LineStyle.None;
                    //row.Cells[0].Border.Left.LineStyle = LineStyle.None;
                    row.Cells[0].Border.Color = RgbColor.White;

                }
            }

            foreach (KeyValuePair<int, List<string>> kvp in data)
            {
                Row row = table.Rows.Add(rowHeight, this.Heveltica, 10, RgbColor.Black, RgbColor.White);
                row.CellDefault.VAlign = VAlign.Center;

                foreach (string value in kvp.Value)
                {
                    row.Cells.Add(value);

                    if (isNumeric(value))
                    {
                        row.Cells[row.Cells.Count - 1].Align = TextAlign.Right;
                    }
                }

                row.Cells[0].BackgroundColor = colorBlue;
                row.Cells[0].TextColor = RgbColor.White;
            }

            this._currentPage.Elements.Add(table);
        }
        public void AddRecueil_Entete_Table(string[] columns, float[] colsWidth, float y, float weight, float height, float x = 0)
        {
            Table table = new Table(x, y, weight, height);
            CmykColor colorBlue = new CmykColor(0.75f, 0.42f, 0f, 0.51f);
            table.Border.Width = 0.5f;
            table.CellDefault.Border.Width = 0.5f;
            table.CellDefault.Border.Color = RgbColor.Black;
            table.Border.Color = RgbColor.Black;

            foreach (float w in colsWidth)
            {
                table.Columns.Add(w);
            }

            Row row = table.Rows.Add(20, this.Heveltica, 11, RgbColor.White, colorBlue);
            row.CellDefault.VAlign = VAlign.Center;

            foreach (string column in columns)
            {
                row.Cells.Add(column);
            }

            this._currentPage.Elements.Add(table);
        }
        public void AddRecueil_Table(List<string> columns, List<float> colsWidth, Dictionary<int, List<string>> data, float y, float weight, float height, float x = 0, float rowHeight = 12.5f)
        {
            Table table = new Table(x, y, weight, height);
            CmykColor colorBlue = new CmykColor(0.75f, 0.42f, 0f, 0.51f);
            table.Border.Width = 0.5f;
            table.CellDefault.Border.Width = 0.5f;
            table.CellDefault.Border.Color = RgbColor.Black;
            table.Border.Color = RgbColor.Black;

            foreach (float w in colsWidth)
            {
                table.Columns.Add(w);
            }

            Row row = table.Rows.Add(rowHeight, this.Heveltica, 10, RgbColor.White, colorBlue);
            row.CellDefault.VAlign = VAlign.Center;
            row.CellDefault.Align = TextAlign.Center;

            foreach (string column in columns)
            {
                row.Cells.Add(column);
            }

            foreach (KeyValuePair<int, List<string>> kvp in data)
            {
                row = table.Rows.Add(rowHeight, this.Heveltica, 11, RgbColor.Black, RgbColor.White);
                row.CellDefault.VAlign = VAlign.Center;

                foreach (string value in kvp.Value)
                {
                    row.Cells.Add(value);
                    if (isNumeric(value))
                    {
                        row.Cells[row.Cells.Count - 1].Align = TextAlign.Right;
                    }
                }

            }

            this._currentPage.Elements.Add(table);
        }
Beispiel #40
0
 public SpecialColor(float cyan, float magenta, float yellow, float black)
 {
     this.Kind = ColorKind.Custom;
     this.CustomColor = CmykColor.FromCmyk(cyan, magenta, yellow, black);
 }
        public void LM_AddTableTitle(Page p, string[] contents, float x, float y)
        {
            float height = 40 * contents.Count(); //40 for a row
            Table table = new Table(x, y, 100, height);
            CmykColor colorBlue = new CmykColor(0.9f, 0.5f, 0f, 0.5f);
            RgbColor colorBlueBackground = new RgbColor(0.86f, 0.90f, 0.95f);
            table.Border.Width = 0.5f;
            table.CellDefault.Border.Width = 0.5f;
            table.Columns.Add(350); // one column

            foreach (string content in contents)
            {
                Row row = table.Rows.Add(20, this.HevelticaBold, 14, RgbColor.Black, RgbColor.White);
                row.Height = 40;
                row.CellDefault.VAlign = VAlign.Center;
                row.Cells.Add(content);
            }
            p.Elements.Add(table);
        }
 public ColorAndText(string text, CmykColor color)
 {
     this.Text = text;
     this.SpecialColor = new SpecialColor(color);
     this.Color = color;
 }
        /// <summary>
        /// Adds the table.
        /// </summary>
        public void AddTable1(string[] columns, IDictionary<int, string[]> values, float x, float y, float weight, float height, int fontSize, bool formattedText)
        {
            Table table = new Table(x, y, weight, height);
            CmykColor colorBlue = new CmykColor(0.75f, 0.42f, 0f, 0.51f);

            table.Border.Width = 1f;
            table.CellDefault.Border.Width = 0.5f;
            table.CellDefault.Border.Color = colorBlue;
            table.Border.Color = colorBlue;

            table.RepeatColumnHeaderCount = 1;
            table.RepeatRowHeaderCount = 1;

            for (int i = 0; i < columns.Length; i++)
                table.Columns.Add((this._currentPage.Dimensions.Width - 100) / columns.Length);


            Row row = table.Rows.Add(20, Font.HelveticaBold, fontSize, RgbColor.White, colorBlue);
            row.CellDefault.VAlign = VAlign.Center;

            foreach (string column in columns)
            {
                if (formattedText)
                    row.Cells.Add(GetFormattedText(column, 0, 0, fontSize));
                else
                    row.Cells.Add(column);
            }

            for (int l = 0; l < values.Keys.Count; l++)
            {
                row = table.Rows.Add(30, Font.Helvetica, fontSize, RgbColor.Black, RgbColor.White);
                row.CellDefault.VAlign = VAlign.Center;
                string[] cells = values[l];
                foreach (string value in cells)
                {
                    if (value.Contains("http://"))
                    {
                        AddLinkToCell(row, value, fontSize);
                    }
                    else
                    {
                        if (formattedText)
                            row.Cells.Add(GetFormattedText(value, 0, 0, fontSize));
                        else
                            row.Cells.Add(value);
                    }
                }
            }

            this._currentPage.Elements.Add(table);
        }
        public void AddTable2(string[] columns, IDictionary<int, string[]> values, float x, float y, float weight, float height, int fontSize, bool formattedText)
        {
            Table table = new Table(x, y, weight, height);
            CmykColor colorBlue = new CmykColor(0.9f, 0.5f, 0f, 0.5f);
            RgbColor colorBlueBackground = new RgbColor(0.86f, 0.90f, 0.95f);

            table.Border.Width = 1f;
            table.CellDefault.Border.Width = 0;
            table.CellDefault.Border.Right.Color = colorBlue;
            table.CellDefault.Border.Right.Width = 1f;
            table.Border.Color = colorBlue;
            table.RepeatColumnHeaderCount = 1;
            table.RepeatRowHeaderCount = 1;

            table.Columns.Add(270);
            table.Columns.Add(80);
            table.Columns.Add(80);
            table.Columns.Add(80);


            Row row = table.Rows.Add(15, Font.Helvetica, fontSize, RgbColor.Black, colorBlueBackground);

            row.CellDefault.VAlign = VAlign.Center;
            row.CellDefault.Border.Bottom.Color = colorBlue;
            row.CellDefault.Border.Bottom.Width = 1f;

            foreach (string column in columns)
            {
                if (formattedText)
                    row.Cells.Add(GetFormattedText(column, 0, 0, fontSize));
                else
                    row.Cells.Add(column);
            }


            for (int l = 0; l < values.Keys.Count; l++)
            {
                if (l == values.Keys.Count - 1)
                {
                    row = table.Rows.Add(50, Font.Helvetica, fontSize, RgbColor.Black, RgbColor.White);
                }
                else
                {
                    row = table.Rows.Add(15, Font.Helvetica, fontSize, RgbColor.Black, RgbColor.White);
                }


                row.CellDefault.VAlign = VAlign.Center;

                string[] cells = values[l];
                foreach (string value in cells)
                {
                    if (value.Contains("http://"))
                    {
                        AddLinkToCell(row, value, fontSize);
                    }
                    else
                    {
                        if (formattedText)
                            row.Cells.Add(GetFormattedText(value, 0, 0, fontSize));
                        else
                            row.Cells.Add(value);
                    }
                }

                row.Cells[0].Align = TextAlign.Left;
                row.Cells[1].Align = TextAlign.Center;
                row.Cells[2].Align = TextAlign.Right;
                row.Cells[3].Align = TextAlign.Right;
            }

            this._currentPage.Elements.Add(table);
        }
        public void AddTable3(IDictionary<int, string[]> values, float x, float y, float weight, float height, int fontSize, bool formattedText)
        {
            Table table = new Table(x, y, weight, height);
            CmykColor colorBlue = new CmykColor(0.9f, 0.5f, 0f, 0.5f);

            table.Border.Width = 1f;
            table.CellDefault.Border.Width = 0.5f;
            table.CellDefault.Border.Color = colorBlue;
            table.Border.Color = colorBlue;

            table.RepeatColumnHeaderCount = 1;
            table.RepeatRowHeaderCount = 1;

            table.Columns.Add(80);
            table.Columns.Add(80);


            Row row;
            for (int l = 0; l < values.Keys.Count; l++)
            {
                row = table.Rows.Add(15, Font.HelveticaBold, fontSize, RgbColor.Black, RgbColor.White);
                row.CellDefault.VAlign = VAlign.Center;

                string[] cells = values[l];
                foreach (string value in cells)
                {
                    if (value.Contains("http://"))
                    {
                        AddLinkToCell(row, value, fontSize);
                    }
                    else
                    {
                        if (formattedText)
                            row.Cells.Add(GetFormattedText(value, 0, 0, fontSize));
                        else
                            row.Cells.Add(value);
                    }

                }
                row.Cells[0].BackgroundColor = colorBlue;
                row.Cells[0].TextColor = RgbColor.White;
                row.Cells[1].Align = TextAlign.Right;
                if (row.Cells[0].Text.StartsWith("TVA"))
                    row.Cells[1].Align = TextAlign.Center;
            }

            this._currentPage.Elements.Add(table);
        }
        public void AddEnteteTable(string[] columns, float x, float y, float weight, float height, int fontSize)
        {
            Table table = new Table(x, y, weight, height);
            CmykColor colorBlue = new CmykColor(0.75f, 0.42f, 0f, 0.51f);
            table.Border.Width = 1f;
            table.CellDefault.Border.Width = 0.5f;
            table.CellDefault.Border.Color = colorBlue;
            table.Border.Color = colorBlue;
            table.Columns.Add(285);
            table.Columns.Add(225);

            Row row = table.Rows.Add(20, Font.HelveticaBold, fontSize, RgbColor.White, colorBlue);
            row.CellDefault.VAlign = VAlign.Center;

            foreach (string column in columns)
            {
                row.Cells.Add(column);
            }
            row.Cells[1].Align = TextAlign.Right;

            this._currentPage.Elements.Add(table);
        }
 public ColorAndText(string text, SpecialColor specialColor, CmykColor color)
 {
     this.Text = text;
     this.SpecialColor = specialColor;
     this.Color = color;
 }
 private void InitColors(CmykColor purpleColor)
 {
     comboBox.Items.Add(new ColorAndText(MiscText.Black, SpecialColor.Black, CmykColor.FromCmyk(0, 0, 0, 1)));
     comboBox.Items.Add(new ColorAndText(MiscText.Purple, SpecialColor.Purple, purpleColor));
     comboBox.Items.Add(new ColorAndText(MiscText.Red, CmykColor.FromCmyk(0, 1, 1, 0)));
     comboBox.Items.Add(new ColorAndText(MiscText.Yellow, CmykColor.FromCmyk(0, 0, 1, 0)));
     comboBox.Items.Add(new ColorAndText(MiscText.Green, CmykColor.FromCmyk(1, 0, 1, 0)));
     comboBox.Items.Add(new ColorAndText(MiscText.LightBlue, CmykColor.FromCmyk(1, 0, 0, 0)));
     comboBox.Items.Add(new ColorAndText(MiscText.DarkBlue, CmykColor.FromCmyk(1, 1, 0, 0)));
     comboBox.Items.Add(new ColorAndText(MiscText.CustomColor, null, null));
 }
        /// <summary>
        /// Adds the table.
        /// </summary>
        public void Coffre_AddTable(string[] values, float x, float y)
        {
            CmykColor colorBlue = new CmykColor(0.75f, 0.42f, 0f, 0.51f);

            Table table = new Table(x, y, 500, 400);
            table.Border.Width = 0.5f;
            table.CellDefault.Border.Width = 0.5f;

            //Add 2 columns
            table.Columns.Add(200);
            table.Columns.Add(300);

            //Entete
            Row row = table.Rows.Add(20, Font.Helvetica, 11, RgbColor.White, colorBlue);
            row.CellDefault.VAlign = VAlign.Center;
            row.Cells.Add("Preuve du dépôt et attestation d'intégrité", 2);
            row.Cells[0].Align = TextAlign.Center;

            //Contents
            string[] contentTitles = { "Nom du document", "Date d'archivage", "Identifiant unique du dépôt", "Taille du fichier", "Algorithme de cryptage des données", "Certificats" };

            for (int i = 0; i < 6; i++) //6 lines
            {
                string contentTitle = contentTitles[i];
                string contentValue = values[i];
                int height = (i == 5) ? 80 : 40;

                row = table.Rows.Add(height, Font.Helvetica, 11);
                row.CellDefault.VAlign = VAlign.Center;
                row.Cells.Add(contentTitle);
                row.Cells.Add(contentValue);
            }

            this._currentPage.Elements.Add(table);
        }
        public override SWM.Color ToColor(CmykColor cmykColor)
        {
            SWM.Color result;

            if (!cmykToColor.TryGetValue(cmykColor, out result)) {
                float[] colorValues = { cmykColor.Cyan, cmykColor.Magenta, cmykColor.Yellow, cmykColor.Black };
                result = SWM.Color.FromValues(colorValues, SwopColorConverter.SwopUri);
                cmykToColor[cmykColor] = result;
            }

            return result;
        }
        private void CustomizeColor(CmykColor color)
        {
            ColorChooserDialog colorChooserDialog = new ColorChooserDialog();
            colorChooserDialog.Color = color;

            if (colorChooserDialog.ShowDialog() == DialogResult.OK) {
                Color = new SpecialColor(colorChooserDialog.Color);
            }

            colorChooserDialog.Dispose();
            comboBox.Invalidate();

            SendChangeNotification();
        }