I had a similar problem with fbi (not functioning in the background and 'eating' memory if you use it to show 1 image at a time)
My requirement was to 'pause' a slideshow = I expect my 'cunning trick' with soft links (alias) will help you ..
I set fbi to 'loop for ever' showing 3 'static' image names, d.jpg, a1.jpg, a2.jpg (see note at end)
Make a1.jpg and a2.jpg both 'alias' of d.jpg (ln -s -f d.jpg a1.jpg, ln -s -f d.jpg a1.jpg)
When you want to 'display a new image', make d.img an alias of the new image (ln -s -f new.jpg d.jpg)
(so my slide show will 'pause' as the 'display a new image' (background task) checks for a button push before changing the alias to a new image)
NOTE. fbi has to be started with (at least) 3 images, since even with -chachemem 0, fbi will 'cache' 2 images (and thus never load the 'change') eg. fbi -d /dec/fb0 -a -noverbose -t 3 -cahcemem 0 d.jpg a1.jpg a2.jpg
(with -t I set it to run 'for ever' on a 3 second cycle over the 3 images - so changing d.jpg should result in the new iamge appearing within 1s)
NB don't be tempted to COPY new.jpg to d.jpg (fbi will show 'corrupted' data on screen as the file it's in the process of loading is overwritten by the cp)
Update:
Further details can be found on the Maidenhead Astro website (for whome I built the photoframe):-
http://www.maidenhead-astro.net/public/ ... ow-th#5000
(in case the link doesn't work, the info is at the bottom of the FAQ page, reached via the 'Beginners and FAQ' page (click link to the 'FAQ' page, near the top of the Beginners page & scroll down to last in list (#5000) & click the '+' to expand it)