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(); ifdef toBufferedImageOpt_acceptFile if (o cast File) if (isImageFile(o)) ret loadBufferedImageFile(o); endifdef 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"); ifdef PNGFile // Who uses this anymore? if (eq(c, "main$PNGFile")) ret (BufferedImage) call(o, "getImage"); endifdef ret null; }