Beispiel #1
0
    private void rgb_value_changed(object o)
    {
        Color color = Color.FromArgb(alpha.value, red.value, green.value, blue.value);
        hsv   hsv   = hsv.rgb_2_hsv(color);

        wheel.hsv = hsv;

        hue.value        = (int)(360.0 * hsv.hue);
        saturation.value = (int)(100.0 * hsv.saturation);
        value.value      = (int)(100.0 * hsv.value);

        saturation.update_gradient(new Color[] { hsv.hsv_2_rgb(hue.value, 0, value.value), hsv.hsv_2_rgb(hue.value, 100, value.value), });
        value.update_gradient(new Color[] { hsv.hsv_2_rgb(hue.value, saturation.value, 0), hsv.hsv_2_rgb(hue.value, saturation.value, 100), });

        if (red != o)
        {
            red.update_gradient(new Color[] { Color.FromArgb(0, green.value, blue.value), Color.FromArgb(255, green.value, blue.value), });
        }
        if (green != o)
        {
            green.update_gradient(new Color[] { Color.FromArgb(red.value, 0, blue.value), Color.FromArgb(red.value, 255, blue.value), });
        }
        if (blue != o)
        {
            blue.update_gradient(new Color[] { Color.FromArgb(red.value, green.value, 0), Color.FromArgb(red.value, green.value, 255), });
        }

        alpha.update_gradient(new Color[] { Color.FromArgb(0, red.value, green.value, blue.value), Color.FromArgb(255, red.value, green.value, blue.value), });

        indicator.color_current = color;

        update_caption();
    }
Beispiel #2
0
    private void indicator_restore(Color color)
    {
        hsv hsv = hsv.rgb_2_hsv(color);

        wheel.hsv = hsv;

        update_parameters(hsv, color);
    }
 private void initEmpty()
 {
     HexValue = new hexvalue();
     RGB      = new rgb();
     HSL      = new hsl();
     HSV      = new hsv();
     CMYK     = new cmyk();
     XYZ      = new xyz();
     Name     = new name();
     Image    = new image();
     Contrast = string.Empty;
 }
Beispiel #4
0
 public void set_bitmap(Bitmap image)
 {
     bitmap = new Bitmap(image, image.Size);
     Colors = new hsv[image.Width, image.Height];
     for (int i = 0; i < image.Width; i++)
     {
         for (int j = 0; j < image.Height; j++)
         {
             Colors[i, j] = new hsv();
             Colors[i, j].setColor(bitmap.GetPixel(i, j));
         }
     }
 }
        public ColorfulRestProperty(object json)
        {
            var colorData = (ColorfulJsonParser)json;

            HexValue = new hexvalue(colorData.Hex);
            RGB      = new rgb(colorData.RGB);
            HSL      = new hsl(colorData.HSL);
            HSV      = new hsv(colorData.HSV);
            CMYK     = new cmyk(colorData.CMYK);
            XYZ      = new xyz(colorData.XYZ);
            Name     = new name(colorData.Name);
            Image    = new image(colorData.Image);
            Contrast = colorData.Contrast.value;
        }
        public ColorfulRestProperty(object json)
        {
            var colorData = (ColorfulJsonParser)json;

            HexValue = new hexvalue(colorData.Hex);
            RGB = new rgb(colorData.RGB);
            HSL = new hsl(colorData.HSL);
            HSV = new hsv(colorData.HSV);
            CMYK = new cmyk(colorData.CMYK);
            XYZ = new xyz(colorData.XYZ);
            Name = new name(colorData.Name);
            Image = new image(colorData.Image);
            Contrast = colorData.Contrast.value;
        }
Beispiel #7
0
        internal palette_wheel(hsv hsv, int size)
        {
            properties = new object[]
            {
                hsv,
                new Bitmap(size, size),
                new Bitmap(size - size / 5, size - size / 5),
                0,
            };

            DoubleBuffered = true;
            Size           = new Size(size, size);

            MouseDown += mousedown;
            MouseMove += mousemove;
            MouseUp   += mouseup;
            Paint     += paint;

            generate_gradient_wheel();
            generate_gradient_triangle();
        }
Beispiel #8
0
        private void mousemove(object o, MouseEventArgs e)
        {
            if (MouseButtons.Left == e.Button)
            {
                if (1 == current)
                {
                    double radius = (wheel.Width - 1.0) / 2.0;
                    double hue    = Math.Atan2(e.Y - radius, e.X - radius);

                    if (.0 > hue)
                    {
                        hue = hue + Math.PI * 2;
                    }

                    hue = (hue + Math.PI * 135.0 / 180.0) / Math.PI / 2.0;

                    hsv = new hsv(hue - Math.Floor(hue), hsv.saturation, hsv.value);
                }
                else if (2 == current)
                {
                    hsv sv = hsv.rgb_2_hsv(Color.FromArgb(compute_color(e.X, e.Y)));

                    hsv.saturation = sv.saturation;
                    hsv.value      = sv.value;

                    Refresh();
                }
                else
                {
                    return;
                }

                if (null != value_changed)
                {
                    value_changed();
                }
            }
        }
Beispiel #9
0
    private void update_parameters(hsv hsv, Color color)
    {
        hue.value        = (int)(360.0 * hsv.hue);
        saturation.value = (int)(100.0 * hsv.saturation);
        value.value      = (int)(100.0 * hsv.value);

        saturation.update_gradient(new Color[] { hsv.hsv_2_rgb(hue.value, 0, value.value), hsv.hsv_2_rgb(hue.value, 100, value.value), });
        value.update_gradient(new Color[] { hsv.hsv_2_rgb(hue.value, saturation.value, 0), hsv.hsv_2_rgb(hue.value, saturation.value, 100), });

        red.value   = color.R;
        green.value = color.G;
        blue.value  = color.B;
        alpha.value = color.A;

        red.update_gradient(new Color[] { Color.FromArgb(0, color.G, color.B), Color.FromArgb(255, color.G, color.B), });
        green.update_gradient(new Color[] { Color.FromArgb(color.R, 0, color.B), Color.FromArgb(color.R, 255, color.B), });
        blue.update_gradient(new Color[] { Color.FromArgb(color.R, color.G, 0), Color.FromArgb(color.R, color.G, 255), });
        alpha.update_gradient(new Color[] { Color.FromArgb(0, color.R, color.G, color.B), Color.FromArgb(255, color.R, color.G, color.B), });

        indicator.color_current = color;

        update_caption();
    }
Beispiel #10
0
    internal palette(Color color)
    {
        hsv hsv = hsv.rgb_2_hsv(color);

        wheel      = new palette_wheel(hsv, 150);
        hue        = new palette_slider((int)(360.0 * hsv.hue), 360, "H", 150, 6);
        saturation = new palette_slider((int)(100.0 * hsv.saturation), 100, "S", 150, 6);
        value      = new palette_slider((int)(100.0 * hsv.value), 100, "V", 150, 6);
        red        = new palette_slider(color.R, 255, "R", 150, 6);
        green      = new palette_slider(color.G, 255, "G", 150, 6);
        blue       = new palette_slider(color.B, 255, "B", 150, 6);
        alpha      = new palette_slider(color.A, 255, "A", 150, 6);
        stack      = new palette_stack(10);
        indicator  = new palette_indicator(color, color);
        accept     = new Button();
        cancel     = new Button();

        wheel.Location = new Point(5, 5);
        wheel.Parent   = this;

        wheel.value_changed += wheel_value_changed;

        hue.Location = new Point(160, 5);
        hue.Parent   = this;

        hue.value_changed += hsv_value_changed;

        saturation.Location = new Point(160, 25);
        saturation.Parent   = this;

        saturation.value_changed += hsv_value_changed;

        value.Location = new Point(160, 45);
        value.Parent   = this;

        value.value_changed += hsv_value_changed;

        red.Location = new Point(160, 70);
        red.Parent   = this;

        red.value_changed += rgb_value_changed;

        green.Location = new Point(160, 90);
        green.Parent   = this;

        green.value_changed += rgb_value_changed;

        blue.Location = new Point(160, 110);
        blue.Parent   = this;

        blue.value_changed += rgb_value_changed;

        alpha.Location = new Point(160, 130);
        alpha.Parent   = this;

        alpha.value_changed += alpha_value_changed;

        stack.Location = new Point(5, 161);
        stack.Parent   = this;

        stack.selected_index_changed += stack_selected_index_changed;

        indicator.Location = new Point(161, 161);
        indicator.Size     = new Size(24, 14);
        indicator.Parent   = this;

        indicator.restore += indicator_restore;

        accept.DialogResult = DialogResult.OK;
        accept.Location     = new Point(235, 155);
        accept.Size         = new Size(55, 20);
        accept.Parent       = this;

        cancel.DialogResult = DialogResult.Cancel;
        cancel.Location     = new Point(295, 155);
        cancel.Size         = new Size(55, 20);
        cancel.Parent       = this;

        MaximizeBox     = false;
        MinimizeBox     = false;
        ShowInTaskbar   = false;
        FormBorderStyle = FormBorderStyle.FixedDialog;
        StartPosition   = FormStartPosition.CenterParent;
        ClientSize      = new Size(355, 180);
        AcceptButton    = accept;
        CancelButton    = cancel;

        FormClosing += form_closing;

        color_elder = color;

        hue.update_gradient(new Color[] { Color.FromArgb(255, 0, 0), Color.FromArgb(255, 255, 0), Color.FromArgb(0, 255, 0), Color.FromArgb(0, 255, 255), Color.FromArgb(0, 0, 255), Color.FromArgb(255, 0, 255), Color.FromArgb(255, 0, 0), });
        saturation.update_gradient(new Color[] { hsv.hsv_2_rgb(hue.value, 0, value.value), hsv.hsv_2_rgb(hue.value, 100, value.value), });
        value.update_gradient(new Color[] { hsv.hsv_2_rgb(hue.value, saturation.value, 0), hsv.hsv_2_rgb(hue.value, saturation.value, 100), });

        red.update_gradient(new Color[] { Color.FromArgb(0, color.G, color.B), Color.FromArgb(255, color.G, color.B), });
        green.update_gradient(new Color[] { Color.FromArgb(color.R, 0, color.B), Color.FromArgb(color.R, 255, color.B), });
        blue.update_gradient(new Color[] { Color.FromArgb(color.R, color.G, 0), Color.FromArgb(color.R, color.G, 255), });
        alpha.update_gradient(new Color[] { Color.FromArgb(0, color.R, color.G, color.B), Color.FromArgb(255, color.R, color.G, color.B), });

        switch_language();
    }
Beispiel #11
0
    private void wheel_value_changed()
    {
        hsv hsv = wheel.hsv;

        update_parameters(hsv, Color.FromArgb(alpha.value, hsv.hsv_2_rgb(hsv.hue, hsv.saturation, hsv.value)));
    }
 private void initEmpty()
 {
     HexValue = new hexvalue();
     RGB = new rgb();
     HSL = new hsl();
     HSV = new hsv();
     CMYK = new cmyk();
     XYZ = new xyz();
     Name = new name();
     Image = new image();
     Contrast = string.Empty;
 }
Beispiel #13
0
 public void setPixel(int x, int y, hsv color)
 {
     bitmap.SetPixel(x, y, color.GetColorRGB());
     Colors[x, y] = color;
 }
Beispiel #14
0
 public myBitmap()
 {
     bitmap       = new Bitmap(1, 1);
     Colors       = new hsv[1, 1];
     Colors[0, 0] = new hsv();
 }