import ui
import time
def screenshot_action(sender):
v = sender.superview
for x in xrange(17): # the next 4 lines should be run 17 times in a row
with ui.ImageContext(v.width, v.height) as c:
v.draw_snapshot()
c.get_image().show()
time.sleep(1.00)
v = ui.load_view()
v.present('sheet')

Is your question:

Is there a way to make all 17 snapshots equally blurry? Or?

Is there a way to make each snapshot to be more blurry than the one before it?

You can capture a screenie of a view, which is what draw_snapshot does. Just replace v with whatever component you want to grab. rather than show(), you'll want to use the pil2ui function to get a ui compatible image, which you could set to an imageview's image.

Also, you might experiment with ImageFilter.GaussianBlur, which looks nicer than BLUR to me. It seems to ignore the radius input parameter. Might be too slow for shield if you are blurring large images.