static ImageSurface showImageWithGrayToBlackSlider(S name, final BufferedImage img) { final ImageSurface is = showImage(name, img); final SimpleLiveValue lv = floatLiveValue(); Runnable update = r { BufferedImage img2 = cloneBufferedImage(img); float darkening = min(lv!, 0.99f); float factor = 1/(1-darkening); offset = -darkening*255; rgbContrastAndBrightness(factor, offset, img2); is.setImage(img2); }; lv.onChange(update); addToWindowAndPack(is, withLabel("Darkening factor:", jLiveValueSliderZeroToOne(lv))); ret is; }