Accord.Imaging.Filters.FiltersSequence.Apply C# (CSharp) Method

Apply() public method

Apply filter to an image.
The method keeps the source image unchanged and returns the result of image processing filter as new image.
No filters were added into the filters' sequence.
public Apply ( Bitmap image ) : Bitmap
image System.Drawing.Bitmap Source image to apply filter to.
return System.Drawing.Bitmap
        public Bitmap Apply(Bitmap image)
        {
            Bitmap dstImage = null;
            // lock source bitmap data
            BitmapData imageData = image.LockBits(
                new Rectangle(0, 0, image.Width, image.Height),
                ImageLockMode.ReadOnly, image.PixelFormat);

            try
            {
                // apply the filter
                dstImage = Apply(imageData);
            }
            finally
            {
                // unlock source image
                image.UnlockBits(imageData);
            }

            return dstImage;
        }

Same methods

FiltersSequence::Apply ( BitmapData imageData ) : Bitmap
FiltersSequence::Apply ( UnmanagedImage image ) : UnmanagedImage
FiltersSequence::Apply ( UnmanagedImage sourceImage, UnmanagedImage destinationImage ) : void

Usage Example

Example #1
0
        public Bitmap GetFilteredBitmap(int iterations = 0)
        {
            if (Filters.Count == 0)
            {
                return(Bitmap);
            }
            else
            {
                Filter.ImageTypes imageType = Filter.ImageTypes.ARgb32bpp;

                Af.FiltersSequence sequence = new Af.FiltersSequence();
                foreach (Filter filter in Filters)
                {
                    sequence.Add(filter.FilterObject);
                    if (filter.ImageType < imageType)
                    {
                        imageType = filter.ImageType;
                    }
                }

                if (iterations > 0)
                {
                    return(new Af.FilterIterator(sequence, iterations).Apply(this.bitmap.ToAccordBitmap(imageType)));
                }
                else
                {
                    return(sequence.Apply(this.Bitmap.ToAccordBitmap(imageType)));
                }
            }
        }