public OFImage blur() { int height = getHeight(); int width = getWidth(); OFImage target = new OFImage(width, height); int ox = 0; int oy = 0; Color oPixel = new Color(0, 0, 0); int sumRed = 0; int sumGreen = 0; int sumBlue = 0; int sumCount = 0; int avgRed = 0; int avgGreen = 0; int avgBlue = 0; for(int y = 0; y < height; y++) { for(int x = 0; x < width; x++) { sumRed = 0; sumGreen = 0; sumBlue = 0; sumCount = 0; for(int h = -1; h <= 1; h++) { for(int v = -1; v <= 1; v++) { ox = x + h; oy = y + v; // System.out.println(x + "," + y + "," + v + "," + h); oPixel = getPixel(ox, oy); if (oPixel != null) { sumRed += oPixel.getRed(); sumGreen += oPixel.getGreen(); sumBlue += oPixel.getBlue(); sumCount++; } } } avgRed = sumRed/sumCount; avgGreen = sumGreen/sumCount; avgBlue = sumBlue/sumCount; target.setPixel(x, y, new Color(avgRed, avgGreen, avgBlue)); } } return target; }