public override ColorBgra Apply(ColorBgra color) { // Adjust saturation var intensity = color.GetIntensityByte(); color.R = Utility.ClampToByte((intensity * 1024 + (color.R - intensity) * sat_factor) >> 10); color.G = Utility.ClampToByte((intensity * 1024 + (color.G - intensity) * sat_factor) >> 10); color.B = Utility.ClampToByte((intensity * 1024 + (color.B - intensity) * sat_factor) >> 10); var hsvColor = (new RgbColor(color.R, color.G, color.B)).ToHsv(); int hue = hsvColor.Hue; hue += hue_delta; while (hue < 0) { hue += 360; } while (hue > 360) { hue -= 360; } hsvColor.Hue = hue; var rgbColor = hsvColor.ToRgb(); var newColor = ColorBgra.FromBgr((byte)rgbColor.Blue, (byte)rgbColor.Green, (byte)rgbColor.Red); newColor = blend_op.Apply(newColor); newColor.A = color.A; return(newColor); }
public override void Render(EffectConfigToken parameters, RenderArgs dstArgs, RenderArgs srcArgs, Rectangle[] rois, int startIndex, int length) { if (parameters is CurvesEffectConfigToken token) { UnaryPixelOp uop = token.Uop; for (int i = startIndex; i < startIndex + length; ++i) { uop.Apply(dstArgs.Surface, srcArgs.Surface, rois[i]); } } }
public override void Render(ImageSurface src, ImageSurface dest, Gdk.Rectangle[] rois) { if (Data.ControlPoints == null) { return; } if (op == null) { op = MakeUop(); } op.Apply(dest, src, rois); }
public override void Render(EffectConfigToken parameters, RenderArgs dstArgs, RenderArgs srcArgs, Rectangle[] rois, int startIndex, int length) { ConfigToken token = parameters as ConfigToken; if (token.Gradient.Count == 0) { return; } UnaryPixelOp uop = token.Uop; for (int i = startIndex; i < startIndex + length; ++i) { uop.Apply(dstArgs.Surface, srcArgs.Surface, rois[i]); } }
public override void Render(ImageSurface src, ImageSurface dest, Gdk.Rectangle[] rois) { op.Apply(dest, src, rois); }
protected override void RenderLine(ISurface src, ISurface dest, Rectangle roi) { op.Apply(src, dest, roi); }
public override void Render(Surface src, Surface dst, Rectangle[] rois, int start, int len) { _op.Apply(dst, src, rois, start, len); }
public override void Render(Surface src, Surface dest, Rectangle[] rois, int startIndex, int length) { _desaturate.Apply(dest, src, rois, startIndex, length); _levels.Apply(dest, dest, rois, startIndex, length); }