!7 p-subst { autoRestart(); JNavigation nav = jnavigation(); frameIcon(#1101244, showMaximizedFrame(nav)); for (final File f : listPNGFiles(javaxDataDir("Screen shots for text recognition"))) { print(f.getName()); final BufferedImage img = loadBufferedImage(f); print("Recognizing"); final L lines = ocr_recognizeMultiLine_scored(img); //lines = [S line : lines | l(getVar(line.text)) > 1]; //pnlStruct(lines); print("Got " + n2(lines, "line")); nav.addPage(f.getName(), func -> JComponent { final new ImageSurface is; is.specialPurposed = true; showImageWithSelections(img, is, collect(lines, 'r)); onImageSurfaceHighlightChange(is, voidfunc(Rect r) { RecognizedText rec = findByField(lines, +r); setToolTip(is, rec == null ? null : str(rec.text)); }); imageSurfacePopupMenuItemWhenHighlighted(is, voidfunc(JPopupMenu menu, Rect r) { addPopupMenuItem(menu, "OK", r { // TODO }); }); ret jtabs( "Picture", jscroll(is), "Raw", jtextarea(pnlStructToString(lines)) ); }); } }