Example #1
0
        //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;
		}