'Grab a screenshot and save it to a file.
Parameters:
- output - string - the output filename. It can contain \'%d\' which
will be replaced by the monitor number.
- screen - int - grab one screenshot of all monitors (screen=-1)
grab one screenshot by monitor (screen=0)
grab the screenshot of the monitor N (screen=N)
- callback - function - in case where output already exists, call
the defined callback function with output
as parameter. If it returns True, then
continue; else ignores the monitor and
switches to ne next.
This is a generator which returns created files.'

def save(self, output='screenshot-%d.png', screen=(-1), callback=(lambda *x: True)):

    for (i, monitor) in enumerate(self.enum_display_monitors(screen)):
        if ((screen <= 0) or ((screen > 0) and ((i + 1) == screen))):
            fname = output
            if ('%d' in output):
                fname = output.replace('%d', str((i + 1)))
            callback(fname)
            self.save_img(data=self.get_pixels(monitor), width=monitor['width'], height=monitor['height'], output=fname)
            (yield fname)
