if (columns == 0 || rows == 0)
throw new ExpressionException("invalid size for image");
BufferedImage resizeImage = ImageUtil.createBufferedImage(image, columns, rows);
Interpolation inter = getInterpolation(interpolation);
double xFactor = (double) columns / (double) image.getWidth();
double scale = blur * Math.max(1.0 / xFactor, 1.0);
double xSupport = Math.max(scale * inter.getSupport(), 0.5);
double yFactor = (double) rows / (double) image.getHeight();
scale = blur * Math.max(1.0 / yFactor, 1.0);
double ySupport = Math.max(scale * inter.getSupport(), 0.5);
double support = Math.max(xSupport, ySupport);
if (support < inter.getSupport())
support = inter.getSupport();
ContributionInfo[] contribution = new ContributionInfo[(int) support * 2 + 3];
for (int cloop = 0; cloop < (int) support * 2 + 3; cloop++)
contribution[cloop] = new ContributionInfo();