protected File blur(File srcFile) throws IOException { BufferedImage srcImage = ImageIO.read(srcFile); BufferedImage destImage = deepCopy(srcImage); BoxBlurFilter boxBlurFilter = new BoxBlurFilter(); boxBlurFilter.setRadius(blurLevel.get().getRadius()); boxBlurFilter.setIterations(3); destImage = boxBlurFilter.filter(srcImage, destImage); ByteArrayOutputStream outStream = new ByteArrayOutputStream(); ImageIO.write(destImage, "png", outStream); return saveScreenshotData(outStream.toByteArray()); }
pt = createProgressTracker(iterations * (width + height)); dst = createCompatibleDestImage(src, null); getRGB(src, 0, 0, width, height, inPixels); blur(inPixels, outPixels, width, height, hRadius, pt); blur(outPixels, inPixels, height, width, vRadius, pt); blurFractional(inPixels, outPixels, width, height, hRadius); blurFractional(outPixels, inPixels, height, width, vRadius); ImageMath.unpremultiply(inPixels, 0, inPixels.length); setRGB(dst, 0, 0, width, height, inPixels); finishProgressTracker();
public BufferedImage filter(BufferedImage src, BufferedImage dst) { int width = src.getWidth(); int height = src.getHeight(); if (dst == null) dst = createCompatibleDestImage(src, null); int[] inPixels = new int[width * height]; int[] outPixels = new int[width * height]; getRGB(src, 0, 0, width, height, inPixels); for (int i = 0; i < iterations; i++) { blur(inPixels, outPixels, width, height, hRadius); blur(outPixels, inPixels, height, width, vRadius); } setRGB(dst, 0, 0, width, height, inPixels); return dst; }
private BoxBlurFilter withFilterFor(BlurLevel blurLevel) { BoxBlurFilter boxBlurFilter = new BoxBlurFilter(); boxBlurFilter.setRadius(blurLevel.getRadius()); boxBlurFilter.setIterations(3); return boxBlurFilter; }
public static BufferedImage createSoftBWBrush(int size) { BufferedImage brushImage = new BufferedImage(size, size, TYPE_INT_ARGB); Graphics2D g = brushImage.createGraphics(); g.setColor(WHITE); g.fillRect(0, 0, size, size); g.setColor(BLACK); int softness = size / 4; g.fillOval(softness, softness, size - 2 * softness, size - 2 * softness); g.dispose(); BoxBlurFilter blur = new BoxBlurFilter(softness, softness, 1, "Blur"); blur.setProgressTracker(ProgressTracker.NULL_TRACKER); brushImage = blur.filter(brushImage, brushImage); return brushImage; }
@Override public BufferedImage filter(BufferedImage src, BufferedImage dst) { if (blurMethod == BOX3_BLUR) { if ((src.getWidth() == 1) || (src.getHeight() == 1)) { // otherwise we get ArrayIndexOutOfBoundsException in BoxBlurFilter return src; } dst = new BoxBlurFilter(radius, radius, 3, filterName).filter(src, null); } else if(blurMethod == GAUSSIAN_BLUR) { dst = new GaussianFilter(radius, filterName).filter(src, null); } else { throw new IllegalStateException("blurMethod = " + blurMethod); } lowerThreshold3 = 255 * 3 * (threshold - softness * 0.5f); upperThreshold3 = 255 * 3 * (threshold + softness * 0.5f); return super.filter(dst, dst); }
@Override public BufferedImage doTransform(BufferedImage src, BufferedImage dest) { float hRadius = radius.getValueAsFloat(0); float vRadius = radius.getValueAsFloat(1); if ((hRadius == 0) && (vRadius == 0)) { return src; } if ((src.getWidth() == 1) || (src.getHeight() == 1)) { // otherwise we get ArrayIndexOutOfBoundsException in BoxBlurFilter return src; } if (filter == null) { filter = new BoxBlurFilter(NAME); } filter.setHRadius(hRadius); filter.setVRadius(vRadius); filter.setIterations(numberOfIterations.getValue()); filter.setPremultiplyAlpha(false); dest = filter.filter(src, dest); if (hpSharpening.isChecked()) { dest = ImageUtils.getHighPassSharpenedImage(src, dest); } return dest; } }
public void displayImageBlurred(String imageUri, final ImageView imageView) { this.displayImage(imageUri, imageView, true, 0, new SimpleImageLoadingListener() { @Override public void onLoadingComplete(Bitmap loadedImage) { int width = loadedImage.getWidth(); int height = loadedImage.getHeight(); BoxBlurFilter filter = new BoxBlurFilter(); filter.setRadius(8.5f); int[] src = AndroidUtils.bitmapToIntArray(loadedImage); src = filter.filter(src, width, height); loadedImage = Bitmap.createBitmap(src, width, height, Config.ARGB_8888); imageView.setImageBitmap(loadedImage); } }); } public void displayImage(String imageUri, final ImageView imageView, boolean callBackIfCached, long startTime, ImageLoadingListener listener) { ImageLoader imageLoader = ImageLoader.getInstance(); imageLoader.displayImage(imageUri, imageView, defaultOptions, listener); }
float hRadius = (float) ((int) (shapeStartX / numIterations)); float vRadius = (float) ((int) (shapeStartY / numIterations)); BoxBlurFilter blurFilter = new BoxBlurFilter( hRadius, vRadius, numIterations, ""); blurFilter.setPremultiplyAlpha(false); blurFilter.setProgressTracker(ProgressTracker.NULL_TRACKER); img = blurFilter.filter(img, null);
public BlurredGlassPane(JFrame frame) { super(); this.frame = frame; setOpaque(true); filter.setRadius(1); filter.setIterations(3); listener = new ComponentListener() { public void componentHidden(ComponentEvent e) { createBlur(); } public void componentMoved(ComponentEvent e) { createBlur(); } public void componentResized(ComponentEvent e) { createBlur(); } public void componentShown(ComponentEvent e) { createBlur(); } }; }
private synchronized void createBlur() { Container contentPane = frame.getContentPane(); int width = contentPane.getWidth(); int height = contentPane.getHeight(); BufferedImage original = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); Graphics g = original.getGraphics(); contentPane.paintAll(g); blur = filter.filter(original, null); logger.debug("Creating blurred image : " + width + "," + height); repaint(); }
public BufferedImage filter( BufferedImage src, BufferedImage dst ) { int width = src.getWidth(); int height = src.getHeight(); BufferedImage image1 = new BoxBlurFilter( radius1, radius1, 3 ).filter( src, null ); BufferedImage image2 = new BoxBlurFilter( radius2, radius2, 3 ).filter( src, null ); Graphics2D g2d = image2.createGraphics(); g2d.setComposite( new SubtractComposite( 1.0f ) );
@Override public BufferedImage doTransform(BufferedImage src, BufferedImage dest) { float radius = blurRadius.getValueAsFloat(); float opacity = amount.getValueAsPercentage(); int width = src.getWidth(); int height = src.getHeight(); // the blur takes approx the same time as the screen + multiply together int blurWorkUnits = 3 * (width + height); int totalWorkUnits = 2 * blurWorkUnits; ProgressTracker pt = new StatusBarProgressTracker(NAME, totalWorkUnits); dest = ImageUtils.copyImage(src); ImageUtils.screenWithItself(dest, opacity); BufferedImage blurredMultiplied = ImageUtils.copyImage(dest); pt.unitsDone(blurWorkUnits / 2); if (radius > 0) { if ((width == 1) || (height == 1)) { // otherwise we get ArrayIndexOutOfBoundsException in BoxBlurFilter return src; } BoxBlurFilter boxBlur = new BoxBlurFilter(radius, radius, 3, NAME); boxBlur.setProgressTracker(pt); blurredMultiplied = boxBlur.filter(blurredMultiplied, blurredMultiplied); } Graphics2D g = dest.createGraphics(); g.setComposite(new MultiplyComposite(opacity)); g.drawImage(blurredMultiplied, 0, 0, null); g.dispose(); pt.finished(); return dest; }
public BufferedImage filter( BufferedImage src, BufferedImage dst ) { int width = src.getWidth(); int height = src.getHeight(); if ( dst == null ) dst = createCompatibleDestImage( src, null ); int[] inPixels = new int[width*height]; int[] outPixels = new int[width*height]; getRGB( src, 0, 0, width, height, inPixels ); if ( premultiplyAlpha ) ImageMath.premultiply( inPixels, 0, inPixels.length ); for (int i = 0; i < iterations; i++ ) { blur( inPixels, outPixels, width, height, hRadius ); blur( outPixels, inPixels, height, width, vRadius ); } blurFractional( inPixels, outPixels, width, height, hRadius ); blurFractional( outPixels, inPixels, height, width, vRadius ); if ( premultiplyAlpha ) ImageMath.unpremultiply( inPixels, 0, inPixels.length ); setRGB( dst, 0, 0, width, height, inPixels ); return dst; }
@Override public ScreenshotNegative process(ScreenshotNegative negative) { ScreenshotNegative amendedNegative = negative.withScreenshotPath(amendedScreenshotPath(negative)); if (negative.getBlurLevel() == BlurLevel.NONE) { return amendedNegative; } try ( ByteArrayOutputStream outStream = new ByteArrayOutputStream(); InputStream imageStream = newInputStream(amendedNegative.getTemporaryPath()) ) { BufferedImage srcImage = ImageIO.read(imageStream); BufferedImage destImage = deepCopy(srcImage); destImage = withFilterFor(negative.getBlurLevel()).filter(srcImage, destImage); ImageIO.write(destImage, "png", outStream); Files.write(negative.getTemporaryPath(), outStream.toByteArray()); } catch (Throwable e) { LOGGER.warn("Failed to blur screenshot", e); } return amendedNegative; }
protected File blur(File srcFile) throws IOException { BufferedImage srcImage = ImageIO.read(srcFile); BufferedImage destImage = deepCopy(srcImage); BoxBlurFilter boxBlurFilter = new BoxBlurFilter(); boxBlurFilter.setRadius(blurLevel.get().getRadius()); boxBlurFilter.setIterations(3); destImage = boxBlurFilter.filter(srcImage, destImage); ByteArrayOutputStream outStream = new ByteArrayOutputStream(); ImageIO.write(destImage, "png", outStream); return saveScreenshotData(outStream.toByteArray()); }
new BandCombineOp(extractAlpha, null).filter(src.getRaster(), shadow.getRaster()); shadow = new BoxBlurFilter(radius, radius, 3, filterName).filter(shadow, null);
BoxBlurFilter blur = new BoxBlurFilter(radius1, radius1, 3, filterName); blur.setProgressTracker(pt); image1 = blur.filter(src, null); } else { image1 = src; BoxBlurFilter blur = new BoxBlurFilter(radius2, radius2, 3, filterName); blur.setProgressTracker(pt); dst = blur.filter(src, null); } else { dst = ImageUtils.copyImage(src);
gShadow.dispose(); if (shadowSoftness > 0) { shadowImage = new BoxBlurFilter(shadowSoftness, shadowSoftness, 1, NAME) .filter(shadowImage, shadowImage);
BoxBlurFilter boxBlur = new BoxBlurFilter(radius, radius, 3, filterName); srcCopy = boxBlur.filter(srcCopy, srcCopy);