I cant say what image format dbSaveImage supports as ive not tested it with anything other than bmp's lol... but I would give it a go anyway.
To answer your other question, no, gdk doesnt continously read the image from the disk.Once it's loaded into memory, thats where its accessed from, so deleting it from the disk is completely viable.
My solution though isnt the most efficient way of doing it, but it does seem to be the quickest and easiest. And in reality, with the speed of hard disks and the size of them these days, a few millisecs during load and a couple hunderd k or so of diskspace isnt going to matter too much
If it ain't broke.... DONT FIX IT !!!