yes, I've reworked the code a bit and am submitting a patch that tidies this all up a lot.  there's still a divide between `grDevices::quartz` vs basic `png` call, which I don't quite understand, but am leaving in