// apply an image filter
        private void ApplyImageFilter(bool preview)
        {
            if (previewBitmap == null || cmbEdgeDetection.SelectedIndex == -1)
            {
                return;
            }

            if (preview == true)
            {
                selectedSource = previewBitmap;
            }
            else
            {
                selectedSource = originalBitmap;
            }
            // retrieve selected image filter
            if (selectedSource != null)
            {
                switch (cmbFilters.SelectedItem.ToString())
                {
                case "None":
                    imageFilterResult = selectedSource;
                    imageFilter       = false;
                    break;

                case "Rainbow":
                    imageFilterResult = ImageFilters.RainbowFilter(new Bitmap(selectedSource));
                    imageFilter       = true;
                    break;

                case "Black & white":
                    imageFilterResult = ImageFilters.BlackWhite(new Bitmap(selectedSource));
                    imageFilter       = true;
                    break;
                }
            }

            if (bitmapResult != null)
            {
                if (preview == true)
                {
                    picPreview.Image = imageFilterResult;
                }
                else
                {
                    resultBitmap = imageFilterResult;
                }
            }
        }
Exemple #2
0
        public static Bitmap Rainbow(this Bitmap sourceBitmap)
        {
            Bitmap resultBitmap = ImageFilters.RainbowFilter(new Bitmap(sourceBitmap));

            return(resultBitmap);
        }
Exemple #3
0
        private void ApplyFilter(bool preview)
        {
            if (previewBitmap == null || cmbEdgeDetection.SelectedIndex == -1)
            {
                return;
            }

            Bitmap selectedSource = null;
            Bitmap bitmapResult   = null;
            Bitmap tempImage      = null;

            if (preview == true)
            {
                selectedSource = previewBitmap;
            }
            else
            {
                selectedSource = originalBitmap;
            }

            switch (cmbImageFilter.SelectedItem.ToString())
            {
            case "None":
                tempImage = selectedSource;
                break;

            case "Night Filter":
                tempImage = ImageFilters.ApplyFilter(selectedSource, 1, 1, 1, 25);
                break;

            case "Hell Filter":
                tempImage = ImageFilters.ApplyFilter(selectedSource, 1, 1, 10, 15);
                break;

            case "Miami Filter":
                tempImage = ImageFilters.ApplyFilter(selectedSource, 1, 1, 10, 1);
                break;

            case "Zen Filter":
                tempImage = ImageFilters.ApplyFilter(selectedSource, 1, 10, 1, 1);
                break;

            case "Black and White":
                tempImage = ImageFilters.BlackWhite(selectedSource);
                break;

            case "Swap Filter":
                tempImage = ImageFilters.ApplyFilterSwap(selectedSource);
                break;

            case "Crazy Filter":
                System.Drawing.Image te = ImageFilters.ApplyFilterSwapDivide(selectedSource, 1, 1, 2, 1);
                tempImage = ImageFilters.ApplyFilterSwap(new Bitmap(te));
                break;

            case "Mega Filter Green":
                tempImage = ImageFilters.ApplyFilterMega(selectedSource, 230, 110, Color.Green);
                break;

            case "Mega Filter Orange":
                tempImage = ImageFilters.ApplyFilterMega(selectedSource, 230, 110, Color.Orange);
                break;

            case "Mega Filter Pink":
                tempImage = ImageFilters.ApplyFilterMega(selectedSource, 230, 110, Color.Pink);
                break;

            case "Mega Filter Custom":
                tempImage = ImageFilters.ApplyFilterMega(selectedSource, 230, 110, Color.Blue);
                break;

            case "Rainbow Filter":
                tempImage = ImageFilters.RainbowFilter(selectedSource);
                break;
            }


            switch (cmbEdgeDetection.SelectedItem.ToString())
            {
            case "None":
                bitmapResult = tempImage;
                break;

            case "Laplacian 3x3":
                bitmapResult = tempImage.Laplacian3x3Filter(false);
                break;

            case "Laplacian 3x3 Grayscale":
                bitmapResult = tempImage.Laplacian3x3Filter(true);
                break;

            case "Laplacian 5x5":
                bitmapResult = tempImage.Laplacian5x5Filter(false);
                break;

            case "Laplacian 5x5 Grayscale":
                bitmapResult = tempImage.Laplacian5x5Filter(true);
                break;

            case "Laplacian of Gaussian":
                bitmapResult = tempImage.LaplacianOfGaussianFilter();
                break;

            case "Laplacian 3x3 of Gaussian 3x3":
                bitmapResult = tempImage.Laplacian3x3OfGaussian3x3Filter();
                break;

            case "Laplacian 3x3 of Gaussian 5x5 - 1":
                bitmapResult = tempImage.Laplacian3x3OfGaussian5x5Filter1();
                break;

            case "Laplacian 3x3 of Gaussian 5x5 - 2":
                bitmapResult = tempImage.Laplacian3x3OfGaussian5x5Filter2();
                break;

            case "Laplacian 5x5 of Gaussian 3x3":
                bitmapResult = tempImage.Laplacian5x5OfGaussian3x3Filter();
                break;

            case "Laplacian 5x5 of Gaussian 5x5 - 1":
                bitmapResult = tempImage.Laplacian5x5OfGaussian5x5Filter1();
                break;

            case "Laplacian 5x5 of Gaussian 5x5 - 2":
                bitmapResult = tempImage.Laplacian5x5OfGaussian5x5Filter2();
                break;

            case "Sobel 3x3":
                bitmapResult = tempImage.Sobel3x3Filter(false);
                break;

            case "Sobel 3x3 Grayscale":
                bitmapResult = tempImage.Sobel3x3Filter();
                break;

            case "Prewitt":
                bitmapResult = tempImage.PrewittFilter(false);
                break;

            case "Prewitt Grayscale":
                bitmapResult = tempImage.PrewittFilter();
                break;

            case "Kirsch":
                bitmapResult = tempImage.KirschFilter(false);
                break;

            case "Kirsch Grayscale":
                bitmapResult = tempImage.KirschFilter();
                break;
            }


            if (bitmapResult != null)
            {
                if (preview == true)
                {
                    picPreview.Image = bitmapResult;
                }
                else
                {
                    resultBitmap = bitmapResult;
                }
            }
        }