private static PixelObject[] getObjects(Captcha captcha) { int startX = 1; outer: for (; startX < captcha.getWidth(); startX++) { for (int y = 1; y < captcha.getHeight() - 1; y++) { if (captcha.grid[startX][y] != 0xffffff) break outer; } } int xEnd = captcha.getWidth() - 2; outer: for (; xEnd > 0; xEnd--) { for (int y = 1; y < captcha.getHeight() - 1; y++) { if (captcha.grid[xEnd][y] != 0xffffff) break outer; } } int wi = (xEnd - startX) / 6; PixelObject[] ret = new PixelObject[6]; for (int i = 0; i < ret.length; i++) { ret[i] = new PixelObject(captcha); } int add = 3; for (int x = startX; x < startX + wi + add; x++) { for (int y = 0; y < captcha.getHeight(); y++) { if (captcha.grid[x][y] != 0xffffff) { ret[0].add(x, y, captcha.grid[x][y]); } } } for (int x = startX + wi; x < startX + wi * 2 + add; x++) { for (int y = 0; y < captcha.getHeight(); y++) { if (captcha.grid[x][y] != 0xffffff) { ret[1].add(x, y, captcha.grid[x][y]); } } } for (int x = startX + wi * 2; x < startX + wi * 3 + add; x++) { for (int y = 0; y < captcha.getHeight(); y++) { if (captcha.grid[x][y] != 0xffffff) { ret[2].add(x, y, captcha.grid[x][y]); } } } for (int x = startX + wi * 3; x < startX + wi * 4 + add; x++) { for (int y = 0; y < captcha.getHeight(); y++) { if (captcha.grid[x][y] != 0xffffff) { ret[3].add(x, y, captcha.grid[x][y]); } } } for (int x = startX + wi * 4; x < startX + wi * 5 + add; x++) { for (int y = 0; y < captcha.getHeight(); y++) { if (captcha.grid[x][y] != 0xffffff) { ret[4].add(x, y, captcha.grid[x][y]); } } } for (int x = startX + wi * 5; x < startX + wi * 6 + add; x++) { for (int y = 0; y < captcha.getHeight(); y++) { if (captcha.grid[x][y] != 0xffffff) { ret[5].add(x, y, captcha.grid[x][y]); } } } return ret; }