import java.awt.geom.AffineTransform; static BufferedImage scaleImage_noSmooth(BufferedImage before, double scale) { ret scaleImage_noSmooth(before, scale, scale); } static BufferedImage scaleImage_noSmooth(BufferedImage before, double scaleX, double scaleY) { if (scaleX == 1 && scaleY == 1) ret before; int w = before.getWidth(), 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); new AffineTransform at; at.scale(scaleX, scaleY); AffineTransformOp scaleOp = new(at, AffineTransformOp.TYPE_NEAREST_NEIGHBOR); ret scaleOp.filter(before, after); } static BufferedImage scaleImage_noSmooth(double scale, BufferedImage before) { ret scaleImage_noSmooth(before, scale); }