Yeah I think the way I'd do it (personally) is have an RPi constantly generate new images in the background and cache them until storage is maxed out, then when you hit the button it just fetches the next image from cache.
That would allow the frame to be somewhat lower power and also decrease ventilation requirements -- no fan needed.