Modifying an image URL based on hash options
Overall, it's reasonably tight code. You've taken steps to reduce method size, which is good.

To answer your questions specifically:


I think an instance variable would be better, because then you can avoid the else clauses you mention in 2. Those methods can then be reduced to 1 or 2 lines.
see 1. :)
If you create an image or picture object, it provides a convenient place to memoize results. I'm not sure this is that important though, as it's probably not likely you'd need to generate more than one URL for a given image in a single request.