예제 #1
0
 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);
     }
 }
예제 #2
0
        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);
            }
        }