public static NSImage Tint(this NSImage image, NSColor tint) { var colorGenerator = new CIConstantColorGenerator { Color = CIColor.FromCGColor(tint.CGColor) }; var colorFilter = new CIColorControls { Image = (CIImage)colorGenerator.ValueForKey(CIFilterOutputKey.Image), Saturation = 3f, Brightness = 0.35f, Contrast = 1f }; var monochromeFilter = new CIColorMonochrome { Image = CIImage.FromCGImage(image.CGImage), Color = CIColor.FromRgb(0.75f, 0.75f, 0.75f), Intensity = 1f }; var compositingFilter = new CIMultiplyCompositing { Image = (CIImage)colorFilter.ValueForKey(CIFilterOutputKey.Image), BackgroundImage = (CIImage)monochromeFilter.ValueForKey(CIFilterOutputKey.Image) }; var outputImage = (CIImage)compositingFilter.ValueForKey(CIFilterOutputKey.Image); var extent = outputImage.Extent; var newsize = Size.Truncate(extent.Size.ToEto()); if (newsize.IsEmpty) { return(image); } var tintedImage = new NSImage(newsize.ToNS()); tintedImage.LockFocus(); try { var graphics = NSGraphicsContext.CurrentContext.GraphicsPort; var ciContext = CIContext.FromContext(graphics, new CIContextOptions { UseSoftwareRenderer = true }); ciContext.DrawImage(outputImage, extent, extent); } finally { tintedImage.UnlockFocus(); } var newrep = tintedImage.Representations()[0]; newrep.Size = image.Size; tintedImage.Size = image.Size; return(tintedImage); }
public CIImage ColorMonochrome() { var inputColor = new CIColor(new CGColor(100F, 0F, 100F)); // Make it Purple R + B = Purple var monoChrome = new CIColorMonochrome() { Image = flower, Color = inputColor, Intensity = 1F, // Default 1 }; return(monoChrome.OutputImage); }
public IEditableImage ToMonochrome() { var mono = new CIColorMonochrome { Color = CIColor.FromRgb(1, 1, 1), Intensity = 1.0f, Image = CIImage.FromCGImage(_image.CGImage) }; CIImage output = mono.OutputImage; var context = CIContext.FromOptions(null); var renderedImage = context.CreateCGImage(output, output.Extent); var monoImage = UIImage.FromImage(renderedImage, _image.CurrentScale, _image.Orientation); _image.Dispose(); _image = monoImage; monoImage = null; renderedImage.Dispose(); renderedImage = null; return(this); }
public CIImage ColorMonochrome () { var inputColor = new CIColor (new CGColor (100F, 0F, 100F)); // Make it Purple R + B = Purple var monoChrome = new CIColorMonochrome () { Image = flower, Color = inputColor, Intensity = 1F, // Default 1 }; return monoChrome.OutputImage; }
void MonochromeExample() { var uiImage = new UIImage("Images/photo.jpg"); CGImage image = uiImage.CGImage; var mono = new CIColorMonochrome { Color = CIColor.FromRgb(1, 1, 1), Intensity = 1.0f, Image = CIImage.FromCGImage(image) }; DisplayFilterOutput(mono, ImageView); }