Hi Xiao, thanks for your post and praise :-)
First, about the "Stealth mode" you suggest - I'm not convinced this would be any better than the on-demand generation currently done... if anything, Zenphoto's current method only spreads out the load over more time, and focuses the workload on where it's desired most. It doesn't provide any real advantage to clicking a button and doing them all at once, other than speed for viewers if the image hasn't yet been processed. After processing the images are served statically, so no advantage there either.
To address that speed problem, a script could easily be created to pre-load images.
It may be a good idea to turn off image generation after pre-loading images manually if the user is extremely concerned about wasted CPU/bandwidth from processing requests... but otherwise, shouldn't be an issue.
If you're running out of PHP memory, it's not going to help changing *when* the images are processed ;-) Only how big they are, increasing the memory limit, etc. can help that.
Re: album extraction, that is a good idea, but as long as you're uploading via FTP or SFTP, why not just upload images one by one? The Zip file's true advantage is in uploading via the web, and Zenphoto already supports that. File a bug in the tracker if you think it'd be good and I'll evaluate it further.
Thanks again for your thoughtful post, I hope you enjoy Zenphoto! I'll tell you now that we'll never drop GD support, and that I'll always try to keep zenphoto simple, elegant, and lightweight.