!747 !image classes !FrameWithImages m { static int g = 8; static RGBImage img; !include #1000522 // helper functions !include #1000898 // exitOnFrameClose p { img = loadImage("#1000326"); int w = img.getWidth(), h = img.getHeight(); RGBImage img2 = new RGBImage(img.getWidth(), img.getHeight(), Color.white); for (int y = g; y < h-g; y += g) for (int x = g; x < w-g; x += g) { double d = calcDiffs(x, y); paintBlock(img2, new RGB(d), x, y); } showImage(img2); } static double calcDiffs(int x, int y) { RGB col = img.getPixel(x, y); return (pixelDiff(img.getPixel(x, y-g), col) +pixelDiff(img.getPixel(x-g, y), col) +pixelDiff(img.getPixel(x+g, y), col) +pixelDiff(img.getPixel(x, y+g), col))/4; } static void paintBlock(RGBImage img, RGB col, int x, int y) { for (int yy = 0; yy < g; yy++) for (int xx = 0; xx < g; xx++) img.setPixel(x+xx, y+yy, col); } }