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())); } }
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); }
public Color BlendColor(Color l, Color r) { return((Color)ColorBlending.AlphaBlend(l, r)); }