Consider a pattern to provide a good user interface for zooming into an image (or a map, or a 3D view).
Linear controls like a spinbutton, or a menu, or a slider, don't work very well. Zooming is 2D. You want a constant zoom factor on each step, and that factor compounds exponentially.
Also, you want the fixed point of the transformation to be right at the cursor's location. The cursor is your focal point, so *that* point shouldn't move about when zooming. If the image zooms in our out from the center of the window, it won't feel as comfortable as if it zooms out of the mouse cursor.