public static BufferedImage gaussianBlur(Image img) {
		BufferedImage src = convert(img);
		BufferedImage dst = new BufferedImage(src.getWidth(), src.getHeight(),
				BufferedImage.TYPE_INT_RGB);

		int width = src.getWidth();
		int height = src.getHeight();

		int[] inPixels = new int[width * height];
		int[] outPixels = new int[width * height];
		src.getRGB(0, 0, width, height, inPixels, 0, width);

		convolveAndTranspose(kernel, inPixels, outPixels, width, height, alpha,
				CLAMP_EDGES);
		convolveAndTranspose(kernel, outPixels, inPixels, height, width, alpha,
				CLAMP_EDGES);

		dst.setRGB(0, 0, width, height, inPixels, 0, width);
		return dst;
	}