static boolean loadBufferedImage_useImageCache = true; static BufferedImage loadBufferedImage(String snippetIDOrURL) ctex { if (snippetIDOrURL == null) ret null; if (isURL(snippetIDOrURL)) ret imageIO_readURL(snippetIDOrURL); if (!isSnippetID(snippetIDOrURL)) fail("Not a URL or snippet ID: " + snippetIDOrURL); S snippetID = "" + parseSnippetID(snippetIDOrURL); File dir = getCacheProgramDir("Image-Snippets"); if (loadBufferedImage_useImageCache) { dir.mkdirs(); File file = new File(dir, snippetID + ".png"); if (file.exists() && file.length() != 0) try { return ImageIO.read(file); } catch (Throwable e) { e.printStackTrace(); // fall back to loading from sourceforge } } String imageURL = snippetImageURL(snippetID); print("Loading image: " + imageURL); BufferedImage image = imageIO_readURL(imageURL); if (loadBufferedImage_useImageCache) { File tempFile = new File(dir, snippetID + ".tmp." + System.currentTimeMillis()); ImageIO.write(image, "png", tempFile); tempFile.renameTo(new File(dir, snippetID + ".png")); //Log.info("Cached image."); } //Log.info("Loaded image."); return image; } static BufferedImage loadBufferedImage(File file) ctex { ret file.isFile() ? ImageIO.read(file) : null; }