//Filters async void ApplyFilter(FilterType filterType) { if (currentFilterType == filterType) { return; } var filterImage = Element as FilterImage; var handler = GetHandler(filterImage.OriginalSource); using (UIImage originalImage = await handler.LoadImageAsync(filterImage.OriginalSource)) { switch (filterType) { case FilterType.NoFilter: filteredImage = UIImage.FromImage(originalImage.CGImage, originalImage.CurrentScale, originalImage.Orientation); break; case FilterType.BlackAndWhite: var blackAndWhiteEffect = new CIPhotoEffectMono() { Image = new CoreImage.CIImage(originalImage) }; filteredImage = ApplyEffect(blackAndWhiteEffect, originalImage); break; case FilterType.Hifi: var hifiControls = new CIColorControls() { Image = new CoreImage.CIImage(originalImage), Brightness = .5F, // Min: 0 Max: 2 Saturation = 1.2F, // Min: -1 Max: 1 Contrast = 2.5F // Min: 0 Max: 4 }; filteredImage = ApplyEffect(hifiControls, originalImage); break; case FilterType.Vintage: var vintageEffect = new CIPhotoEffectChrome() { Image = new CoreImage.CIImage(originalImage) }; filteredImage = ApplyEffect(vintageEffect, originalImage); break; case FilterType.Saturated: var saturatedEffect = new GPUImageSaturationFilter(); saturatedEffect.Saturation = 2.5f; var imageFiltered = saturatedEffect.CreateFilteredImage(originalImage); filteredImage = imageFiltered; break; } Control.Image = filteredImage; currentFilterType = filterType; } }
/// <summary> /// Exaggerates color of the image producing a vintage look. /// </summary> /// <returns>The altered inmage.</returns> CIImage PhotoEffectChrome () { var photo_effect_chrome = new CIPhotoEffectChrome () { Image = flower }; return photo_effect_chrome.OutputImage; }