private void ApplyBoxBlur(Bitmap destinationBitmap, int range) { // We only need one fastbitmap as we use it as source and target (the reading is done for one line H/V, writing after "parsing" one line H/V) using (IFastBitmap fastBitmap = FastBitmap.Create(destinationBitmap)) { FastBitmapOperator.ApplyBoxBlur(fastBitmap, range); } }
public Image Blur(Image sourceImage, int radius) { if (sourceImage == null) { return(sourceImage); } using (IFastBitmap fastBitmap = FastBitmap.CreateCloneOf(sourceImage)) { FastBitmapOperator.ApplyBoxBlur(fastBitmap, radius); Bitmap bmp = new Bitmap(sourceImage.Width, sourceImage.Height, sourceImage.PixelFormat); using (Graphics graphics = Graphics.FromImage(bmp)) { fastBitmap.DrawTo(graphics, Point.Empty); } return(bmp); } }