static BufferedImage toBufferedImageOpt(O o) { if (o cast BufferedImage) ret o; if (o cast Image) ret copyImage(o); if (o cast MakesBufferedImage) ret o.getBufferedImage(); if (o cast File) if (isImageFile(o)) ret loadBufferedImageFile(o); S c = getClassName(o); // Keep this because it also works on imported objects if (eqOneOf(c, "main$BWImage", "main$RGBImage")) ret (BufferedImage) call(o, "getBufferedImage"); if (eq(c, "main$PNGFile")) ret (BufferedImage) call(o, "getImage"); null; }