// m = cols, n = rows static L imageToTiles(BufferedImage img, int m, int n) { new L tiles; int w = img.getWidth(), h = img.getHeight(); if (m > w || n > h) fail("Too many tiles (" + m + "/" + n + ") for image of size " + w + "*" + h); for y to n: { int y1 = y*h/n, y2 = (y+1)*h/n; for x to m: { int x1 = x*w/m, x2 = (x+1)*w/m; Rect r = /*rectMinSize(1, 1,*/ rectFromPoints(x1, y1, x2, y2)/*)*/; tiles.add(clipBufferedImage(img, r)); } } ret tiles; }