!7 static WebcamPanel panel; static bool savingOn = true; static double saveEvery = 10.0; static volatile File latestSaved; p { restartWith128MBHeap(); outBuf(50000); substance(); selectWebCam(voidfunc(Webcam cam) { panel = new WebcamPanel(cam, true); panel.setFPSDisplayed(true); frameIcon(#1009177, exitProgramOnFrameClose(alwaysOnTop(showPackedFrame("JavaX Live WebCam", panel))); bot("WebCam."); doEvery_daemon_now(saveEvery, f saveDefault); }); hideConsole(); } answer { if "save jpeg at *" { saveJPEG(newFile($1), imageFromWebcamPanel(panel)); ret "OK"; } if "latest file" ret latestSaved == null ? "Not saved yet" : "OK " + quote(f2s(latestSaved)); } svoid saveDefault { if (!savingOn) ret; File file = newFile(javaxDataDir(), "WebCam", ("webcam-" + dateWithSecondsForFile() + ".jpg"); saveJPEG(file, imageFromWebcamPanel(panel)); latestSaved = file; }