@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; } }