Exemplo n.º 1
0
        /*
         * public static WriteableBitmap WriteableBitmapBlur(this WriteableBitmap writeableBitmapOld, int kernelWidth, int kernelHeight)
         * {
         *  var cloneWriteableBitmap = WriteableBitmapExpansion.CopyWriteableBitmap(writeableBitmapOld);
         *  WriteableBitmapConvolutionExtensions.GaussianBlur(cloneWriteableBitmap, kernelWidth, kernelHeight);
         *  cloneWriteableBitmap.Invalidate();
         *  return cloneWriteableBitmap;
         * }
         */

        /// <summary>
        /// 高斯滤波
        /// </summary>
        /// <param name="writeableBitmapOld"></param>
        /// <param name="radius">0 to 100</param>
        /// <param name="sigma">0 to 30</param>
        /// <returns></returns>
        public static WriteableBitmap WriteableBitmapBlur(this WriteableBitmap writeableBitmapOld, int radius, double sigma)
        {
            var cloneWriteableBitmap = WriteableBitmapExpansion.CopyWriteableBitmap(writeableBitmapOld);
            var writeableBitmap      = WriteableBitmapConvolutionExtensions.GaussFilter(cloneWriteableBitmap, radius, sigma);

            writeableBitmap.Invalidate();
            return(writeableBitmap);
        }
Exemplo n.º 2
0
        public static WriteableBitmap WriteableBitmapBlur(this WriteableBitmap writeableBitmapOld)
        {
            var cloneWriteableBitmap = WriteableBitmapExpansion.CopyWriteableBitmap(writeableBitmapOld);

            WriteableBitmapConvolutionExtensions.GaussianBlur(cloneWriteableBitmap);
            cloneWriteableBitmap.Invalidate();
            return(cloneWriteableBitmap);
        }
Exemplo n.º 3
0
        public static WriteableBitmap WriteableBitmapBlur(this WriteableBitmap writeableBitmapOld, int x, int y)
        {
            if ((x & 1) == 0 || (y & 1) == 0)
            {
                return(null);
            }
            var cloneWriteableBitmap = WriteableBitmapExpansion.CopyWriteableBitmap(writeableBitmapOld);

            WriteableBitmapConvolutionExtensions.BoxBlur(cloneWriteableBitmap, x, y);
            cloneWriteableBitmap.Invalidate();
            return(cloneWriteableBitmap);
        }
Exemplo n.º 4
0
        private void SetImage(string source)
        {
            BitmapImage img1 = new BitmapImage(new Uri(source, UriKind.RelativeOrAbsolute));
            ImageBack.Source = img1;

            img1.CreateOptions = BitmapCreateOptions.None;
            img1.ImageOpened += (s, e) =>
            {
                WriteableBitmap bitmap = new WriteableBitmap(img1);
                WriteableBitmapConvolutionExtensions.BoxBlur(bitmap, 145);

                ImageBackBlur.Source = bitmap;
            };
        }