sinterface IBinaryImage extends MakesBufferedImage { bool getBoolPixel(int x, int y); default void setPixel(int x, int y, bool b) { throw unimplemented(); } default bool getBoolPixel(Pt p) { ret getBoolPixel(p.x, p.y); } default bool getBoolPixel_noRangeCheck(int x, int y) { ret getBoolPixel(x, y); } public default BufferedImage getBufferedImage() { ret toImage2B().getBufferedImage(); } default Image2B toImage2B() { ret this instanceof Image2B ? (Image2B) this : iBinaryImageToImage2B(this); } }