Exemple #1
0
        public static Bitmap CrazyFilter(this Bitmap sourceBitmap)
        {
            System.Drawing.Image te = ImageFilters.ApplyFilterSwapDivide(sourceBitmap, 1, 1, 2, 1);
            Bitmap resultBitmap     = ImageFilters.ApplyFilterSwap(new Bitmap(te));

            return(resultBitmap);
        }
        /// <summary>
        /// Checks for the selected filters and apply them
        /// one by one (if many).
        /// It creates a temporary bitmap and sets the preview
        /// and the result image accordind to the filters modifications.
        /// </summary>
        private void applyfilters()
        {
            Bitmap temp = originalBitmap;

            if (temp != null)
            {
                if (swapFilterCheckBox.Checked)
                {
                    temp = ImageFilters.ApplyFilterSwap(new Bitmap(temp));
                }
                if (crazyFilterCheckBox.Checked)
                {
                    temp = ImageFilters.ApplyFilterSwapDivide(new Bitmap(temp), 1, 1, 2, 1);
                    temp = ImageFilters.ApplyFilterSwap(new Bitmap(temp));
                }

                setPreviewPic(temp);
                resultBitmap  = temp;
                previewBitmap = temp;
            }
        }
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;
                }
            }
        }