Пример #1
0
        public override Color BlendColor(Color l, Color r)
        {
            bool ctrlIng     = (Control.ModifierKeys & Keys.Shift) != 0;
            bool switchTools = (!Editor.MainForm.DodgeBurnOptions.Inverted && ctrlIng) ||
                               (Editor.MainForm.DodgeBurnOptions.Inverted && !ctrlIng);
            float mod = l.A / 255.0f;

            if (switchTools)
            {
                return(Color.FromArgb(ColorBlending.Burn(r, 1 - ((GlobalSettings.DodgeBurnExposure * mod) / 10.0f)).ToArgb()));
            }
            else
            {
                return(Color.FromArgb(ColorBlending.Dodge(r, (GlobalSettings.DodgeBurnExposure * mod) / 10.0f).ToArgb()));
            }
        }
Пример #2
0
        public bool RequestPreview(ColorGrabber pixels, Skin skin, int x, int y)
        {
            if (x == -1)
            {
                return(false);
            }

            var  highlightPoint = new Point(x, y);
            bool doHighlight    = ((Control.ModifierKeys & Keys.Control) != 0);

            Color newColor;

            if (doHighlight)
            {
                Rectangle part = Editor.CurrentModel.GetTextureFaceBounds(highlightPoint, skin);

                for (int ry = part.Y; ry < part.Y + part.Height; ++ry)
                {
                    for (int rx = part.X; rx < part.X + part.Width; ++rx)
                    {
                        ColorPixel px      = pixels[rx, ry];
                        Color      c       = Color.FromArgb(px.Alpha, px.Red, px.Green, px.Blue);
                        Color      blendMe = Color.FromArgb(64, Color.Green);
                        newColor = (Color)ColorBlending.AlphaBlend(blendMe, c);

                        pixels[rx, ry] = new ColorPixel((newColor.R << 0) | (newColor.G << 8) | (newColor.B << 16) | (newColor.A << 24));
                    }
                }
            }

            newColor =
                (((Control.ModifierKeys & Keys.Shift) != 0)
                                        ? Editor.MainForm.ColorPanel.UnselectedColor
                                        : Editor.MainForm.ColorPanel.SelectedColor).RGB;
            pixels[x, y] = new ColorPixel(newColor.R | (newColor.G << 8) | (newColor.B << 16) | (newColor.A << 24));
            return(true);
        }
Пример #3
0
 public Color BlendColor(Color l, Color r)
 {
     return((Color)ColorBlending.AlphaBlend(l, r));
 }