@Override
    public ImageBuffer filter(ImageBuffer source)
    {
        final int width = source.getWidth();
        final int height = source.getHeight();
        if (width < MIN_SIZE || height < MIN_SIZE)
        {
            return source;
        }

        final int[] inPixels = new int[width * height];
        final int[] outPixels = new int[width * height];
        source.getRgb(0, 0, width, height, inPixels, 0, width);

        final Kernel kernel = createKernel(radius, width, height);
        compute(kernel, inPixels, outPixels, width, height, alpha, edge);
        compute(kernel, outPixels, inPixels, height, width, alpha, edge);

        final ImageBuffer dest = Graphics.createImageBuffer(width, height, source.getTransparentColor());
        dest.setRgb(0, 0, width, height, inPixels, 0, width);
        return dest;
    }
@ Override public ImageBuffer filter ( ImageBuffer source ) { final int width = source . getWidth ( ) ; final int height = source . getHeight ( ) ; if ( width < MIN_SIZE || height < MIN_SIZE ) { return source ; } final int [ ] inPixels = new int [ width * height ] ; final int [ ] outPixels = new int [ width * height ] ; source . getRgb ( 0 , 0 , width , height , inPixels , 0 , width ) ; final Kernel kernel = createKernel ( radius , width , height ) ; compute ( kernel , inPixels , outPixels , width , height , alpha , edge ) ; compute ( kernel , outPixels , inPixels , height , width , alpha , edge ) ; final ImageBuffer dest = Graphics . createImageBuffer ( width , height , source . getTransparentColor ( ) ) ; dest . setRgb ( 0 , 0 , width , height , inPixels , 0 , width ) ; return dest ; }
/*
Filter