private void applySepiaFilter(float sepiaIntensity)
        {
            // Apply a filter
            GPUImageSepiaFilter filter = new GPUImageSepiaFilter();
            filter.Intensity = sepiaIntensity;

            // Create image object to process
            GPUImagePicture stillImageSource = new GPUImagePicture(image, true);
            stillImageSource.AddTarget(filter);

            filter.AddTarget(imageView);

            // Launch the process
            stillImageSource.ProcessImage();
        }
        public async override void ViewDidLoad()
        {
            base.ViewDidLoad();

            filter = new GPUImageTiltShiftFilter();
            // This is now needed to make the filter run at the smaller output size
            filter.ForceProcessingAtSize(imageView.SizeInPixels);
            filter.AddTarget(imageView);

            var inputImage = UIImage.FromBundle("WID-small.jpg");

            picture = new GPUImagePicture(inputImage, true);
            picture.AddTarget(filter);

            await picture.ProcessImageAsync();
        }
Пример #3
0
        async partial void OnResampleSelectorChanged(UISegmentedControl sender)
        {
            switch (sender.SelectedSegment)
            {
            case 0:
                // Linear downsampling
                var passthroughFilter = new GPUImageBrightnessFilter();
                passthroughFilter.ForceProcessingAtSize(new CGSize(640.0, 480.0));

                var linearImageSource = new GPUImagePicture(inputImage);
                linearImageSource.AddTarget(passthroughFilter);

                passthroughFilter.UseNextFrameForImageCapture();
                await linearImageSource.ProcessImageAsync();

                imageView.Image = passthroughFilter.ToImage(UIImageOrientation.Up);
                break;

            case 1:
                // Lanczos downsampling
                var lanczosResamplingFilter = new GPUImageLanczosResamplingFilter();
                lanczosResamplingFilter.ForceProcessingAtSize(new CGSize(640.0, 480.0));

                var lanczosImageSource = new GPUImagePicture(inputImage);
                lanczosImageSource.AddTarget(lanczosResamplingFilter);

                lanczosResamplingFilter.UseNextFrameForImageCapture();
                await lanczosImageSource.ProcessImageAsync();

                imageView.Image = lanczosResamplingFilter.ToImage(UIImageOrientation.Up);
                break;

            case 2:
                // Trilinear downsampling
                var passthroughFilter2 = new GPUImageBrightnessFilter();
                passthroughFilter2.ForceProcessingAtSize(new CGSize(640.0, 480.0));

                var trilinearImageSource = new GPUImagePicture(inputImage, true);
                trilinearImageSource.AddTarget(passthroughFilter2);

                passthroughFilter2.UseNextFrameForImageCapture();
                await trilinearImageSource.ProcessImageAsync();

                imageView.Image = passthroughFilter2.ToImage(UIImageOrientation.Up);
                break;
            }
        }
		async partial void OnResampleSelectorChanged (UISegmentedControl sender)
		{
			switch (sender.SelectedSegment) {
			case 0:
				// Linear downsampling
				var passthroughFilter = new GPUImageBrightnessFilter ();
				passthroughFilter.ForceProcessingAtSize (new CGSize (640.0, 480.0));

				var linearImageSource = new GPUImagePicture (inputImage);
				linearImageSource.AddTarget (passthroughFilter);

				passthroughFilter.UseNextFrameForImageCapture ();
				await linearImageSource.ProcessImageAsync ();

				imageView.Image = passthroughFilter.ToImage (UIImageOrientation.Up);
				break;

			case 1:
				// Lanczos downsampling
				var lanczosResamplingFilter = new GPUImageLanczosResamplingFilter ();
				lanczosResamplingFilter.ForceProcessingAtSize (new CGSize (640.0, 480.0));

				var lanczosImageSource = new GPUImagePicture (inputImage);
				lanczosImageSource.AddTarget (lanczosResamplingFilter);

				lanczosResamplingFilter.UseNextFrameForImageCapture ();
				await lanczosImageSource.ProcessImageAsync ();

				imageView.Image = lanczosResamplingFilter.ToImage (UIImageOrientation.Up);
				break;

			case 2:
				// Trilinear downsampling
				var passthroughFilter2 = new GPUImageBrightnessFilter ();
				passthroughFilter2.ForceProcessingAtSize (new CGSize (640.0, 480.0));

				var trilinearImageSource = new GPUImagePicture (inputImage, true);
				trilinearImageSource.AddTarget (passthroughFilter2);

				passthroughFilter2.UseNextFrameForImageCapture ();
				await trilinearImageSource.ProcessImageAsync ();

				imageView.Image = passthroughFilter2.ToImage (UIImageOrientation.Up);
				break;
			}
		}
Пример #5
0
        private void applySepiaFilter(float sepiaIntensity)
        {
            // Apply a filter
            GPUImageSepiaFilter filter = new GPUImageSepiaFilter();

            filter.Intensity = sepiaIntensity;

            // Create image object to process
            GPUImagePicture stillImageSource = new GPUImagePicture(image, true);

            stillImageSource.AddTarget(filter);

            filter.AddTarget(imageView);

            // Launch the process
            stillImageSource.ProcessImage();
        }
        async partial void OnFilterSelectorChanged(UISegmentedControl sender)
        {
            switch (sender.SelectedSegment)
            {
            case 0:
                // Set up a manual image filtering chain
                var vignetteFilter = new GPUImageVignetteFilter();
                vignetteFilter.VignetteEnd   = 0.6f;
                vignetteFilter.VignetteStart = 0.4f;

                var sepiaFilter = new GPUImageSepiaFilter();
                sepiaFilter.AddTarget(vignetteFilter);

                var imageSource = new GPUImagePicture(inputImageUrl);
                imageSource.AddTarget(sepiaFilter);

                vignetteFilter.UseNextFrameForImageCapture();
                await imageSource.ProcessImageAsync();

                using (var currentImage = vignetteFilter.ToImage())
                    using (var pngData = currentImage.AsPNG()) {
                        pngData.Save(path1, true);
                    }

                imageView.Image = UIImage.FromFile(path1);
                break;

            case 1:
                // Do a simpler image filtering
                var imageFilter = new GPUImageSketchFilter();

                using (var quickFilteredImage = imageFilter.CreateFilteredImage(inputImage))
                    using (var pngData = quickFilteredImage.AsPNG()) {
                        pngData.Save(path2, true);
                    }

                imageView.Image = UIImage.FromFile(path2);
                break;
            }
        }
		async partial void OnFilterSelectorChanged (UISegmentedControl sender)
		{
			switch (sender.SelectedSegment) {
			case 0:
				// Set up a manual image filtering chain
				var vignetteFilter = new GPUImageVignetteFilter ();
				vignetteFilter.VignetteEnd = 0.6f;
				vignetteFilter.VignetteStart = 0.4f;

				var sepiaFilter = new GPUImageSepiaFilter ();
				sepiaFilter.AddTarget (vignetteFilter);

				var imageSource = new GPUImagePicture (inputImageUrl);
				imageSource.AddTarget (sepiaFilter);

				vignetteFilter.UseNextFrameForImageCapture ();
				await imageSource.ProcessImageAsync ();

				using (var currentImage = vignetteFilter.ToImage ())
				using (var pngData = currentImage.AsPNG ()) {
					pngData.Save (path1, true);
				}

				imageView.Image = UIImage.FromFile (path1);
				break;

			case 1:
				// Do a simpler image filtering
				var imageFilter = new GPUImageSketchFilter ();

				using (var quickFilteredImage = imageFilter.CreateFilteredImage (inputImage))
				using (var pngData = quickFilteredImage.AsPNG ()) {
					pngData.Save (path2, true);
				}

				imageView.Image = UIImage.FromFile (path2);
				break;
			}
		}