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; }
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(); }
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()); }
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()); }
@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); }
new BandCombineOp(extractAlpha, null).filter(src.getRaster(), shadow.getRaster()); shadow = new BoxBlurFilter(radius, radius, 3, filterName).filter(shadow, null);
@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; }
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); }
img = blurFilter.filter(img, null);
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 ) );
if (shadowSoftness > 0) { shadowImage = new BoxBlurFilter(shadowSoftness, shadowSoftness, 1, NAME) .filter(shadowImage, shadowImage);
@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; }
srcCopy = boxBlur.filter(srcCopy, srcCopy);
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);
@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; } }