!7 !include once #1025225 // Shared IntegralImage cmodule SegmentScreenshotStream > DynImageSurface { switchable int displayWidth = 400; ISegmenter segmenter; transient L rects; start-thread { if (segmenter == null) setField(segmenter := segmenterFromAGIBlue("Find active internal frame (JTattoo) #1")); dm_vmBus_onMessage_q newScreenshotInStream(voidfunc(O mod, virtual Screenshot ss) { BufferedImage img = cast rget image(ss); IntegralImage ii = cast rget integralImage(ss); setImage(scaledBufferedImageFromIntegralImage(displayWidth, ii)); rects = segmenter.get(img); overlaySelectionsOnImageSurface(imageSurface, scaleRects(rects, doubleRatio(displayWidth, ii.getWidth()))); }); } }