import java.awt.geom.*; static BufferedImage scaleImageWithOp(BufferedImage before, double scaleX, double scaleY default scaleX, int affineTransformOpType) { if (scaleX == 1 && scaleY == 1) ret before; int w = before.getWidth(); int h = before.getHeight(); int neww = max(1, iround(w*scaleX)), newh = max(1, iround(h*scaleY)); BufferedImage after = new BufferedImage(neww, newh, BufferedImage.TYPE_INT_ARGB); AffineTransform at = new AffineTransform(); at.scale(scaleX, scaleY); AffineTransformOp scaleOp = new(at, affineTransformOpType); ret scaleOp.filter(before, after); }