!7 !include once #1025225 // Shared IntegralImage cmodule FindConstantArea > DynImageSurface { switchable int displayWidth = 400, cubeSize = 40; transient Rect area; // area currently looked at transient RGB lastColor; start { dm_vmBus_onMessage_q newScreenshotInStream(voidfunc(O mod, virtual Screenshot ss) { IntegralImage ii = cast rget integralImage(ss); setImage(scaledBufferedImageFromIntegralImage(displayWidth, ii)); if (area == null) area = randomRect(cubeSize, cubeSize, ii_rect(ii)); print("Area: " + area); setSelection(area); RGB color = ii_averageColorOfArea(ii, area); if (lastColor != null) { if (eq(color, lastColor)) print("Same color!"); else { print("New color. Switching area."); area = null; } lastColor = color; } }); pnlWithHeading("Images found in " + programDir(), listImagesInProgramDir()); } }