ZOOM Image Zoom Function
Section: Handle-Based Graphics
UsageThis function changes the zoom factor associated with the currently active image. It is a legacy support function only, and thus is not quite equivalent to the
zoomfunction from previous versions of FreeMat. However, it should achieve roughly the same effect. The generic syntax for its use is
x is the zoom factor to be used. The exact behavior of the zoom
factor is as follows:
x>0The image is zoomed by a factor
xin both directions.
x=0The image on display is zoomed to fit the size of the image window, but the aspect ratio of the image is not changed. (see the Examples section for more details). This is the default zoom level for images displayed with the
x<0The image on display is zoomed to fit the size of the image window, with the zoom factor in the row and column directions chosen to fill the entire window. The aspect ratio of the image is not preserved. The exact value of
ExampleTo demonstrate the use of the
zoomfunction, we create a rectangular image of a Gaussian pulse. We start with a display of the image using the
imagecommand, and a zoom of 1.
--> x = linspace(-1,1,300)'*ones(1,600); --> y = ones(300,1)*linspace(-1,1,600); --> Z = exp(-(x.^2+y.^2)/0.3); --> image(Z); --> zoom(1.0);
At this point, resizing the window accomplishes nothing, as with a zoom factor
greater than zero, the size of the image is fixed.
If we change the zoom to another factor larger than 1, we enlarge the image by
the specified factor (or shrink it, for zoom factors
0 < x < 1. Here is the
same image zoomed out to 60%
--> image(Z); --> zoom(0.6);
Similarly, we can enlarge it to 130%
--> image(Z) --> zoom(1.3);
The ``free'' zoom of
x = 0 results in the image being zoomed to fit the window
without changing the aspect ratio. The image is zoomed as much as possible in
--> image(Z); --> zoom(0); --> sizefig(200,400);
The case of a negative zoom
x < 0 results in the image being scaled arbitrarily.
This allows the image aspect ratio to be changed, as in the following example.
--> image(Z); --> zoom(-1); --> sizefig(200,400);