Should I try to detect what's on the system? Should I make MyModule::ImageMagick and MyModule::GD and make the user choose?
I would say that it depends. If you are using the modules simply to generically load images, and nothing else, as your previous post implies, then it might be easier to auto-detect what modules the user has on their system (Imager is another good one, BTW). If you are building on features that the modules provide, then since your code will depend more tightly on the modules' API, then the second option might make more sense.