public abstract Apply ( |
||
color | ||
return |
public override ColorBgra Apply(ColorBgra color) { //adjust saturation byte intensity = color.GetIntensityByte(); color.R = Utility.ClampToByte((intensity * 1024 + (color.R - intensity) * satFactor) >> 10); color.G = Utility.ClampToByte((intensity * 1024 + (color.G - intensity) * satFactor) >> 10); color.B = Utility.ClampToByte((intensity * 1024 + (color.B - intensity) * satFactor) >> 10); HsvColor hsvColor = (new RgbColor(color.R, color.G, color.B)).ToHsv(); int hue = hsvColor.Hue; hue += hueDelta; while (hue < 0) { hue += 360; } while (hue > 360) { hue -= 360; } hsvColor.Hue = hue; RgbColor rgbColor = hsvColor.ToRgb(); ColorBgra newColor = ColorBgra.FromBgr((byte)rgbColor.Blue, (byte)rgbColor.Green, (byte)rgbColor.Red); newColor = blendOp.Apply(newColor); newColor.A = color.A; return(newColor); }
public override void RenderEffect(ImageSurface src, ImageSurface dest, Gdk.Rectangle[] rois) { op = new UnaryPixelOps.PosterizePixel (red, green, blue); op.Apply (dest, src, rois); }