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; }
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); }
private BoxBlurFilter withFilterFor(BlurLevel blurLevel) { BoxBlurFilter boxBlurFilter = new BoxBlurFilter(); boxBlurFilter.setRadius(blurLevel.getRadius()); boxBlurFilter.setIterations(3); return boxBlurFilter; }
new BandCombineOp(extractAlpha, null).filter(src.getRaster(), shadow.getRaster()); shadow = new BoxBlurFilter(radius, radius, 3, filterName).filter(shadow, null);
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);
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 ) );
gShadow.dispose(); 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; }
BoxBlurFilter boxBlur = new BoxBlurFilter(radius, radius, 3, filterName); srcCopy = boxBlur.filter(srcCopy, srcCopy);
BoxBlurFilter blur = new BoxBlurFilter(radius1, radius1, 3, filterName); blur.setProgressTracker(pt); image1 = blur.filter(src, null); BoxBlurFilter blur = new BoxBlurFilter(radius2, radius2, 3, filterName); blur.setProgressTracker(pt); dst = blur.filter(src, null);
@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; } }