HTML and CSS Reference
In-Depth Information
Zoom and Pan the Image
To zoom in or out of an image, we need to change the final width and height values of
the drawImage() function. Let's examine how we would zoom out to 50% of the original
size of the image while panning at the same time. The drawImage() function will look
like this:
context.drawImage(photo, windowX, windowY, windowWidth, windowHeight,
0, 0, windowWidth*.5,windowHeight*.5);
Example 4-13 modifies Example 4-12 and adds in the 50% zoom.
Example 4-13. Pan an image with a preset zoom out
var photo = new Image();
photo.addEventListener('load', eventPhotoLoaded , false);
photo.src = "butterfly.jpg";
var windowWidth = 500;
var windowHeight = 500;
var windowX = 0;
var windowY = 0;
function eventPhotoLoaded() {
startUp();
}
function drawScreen(){
context.drawImage(photo, windowX, windowY, windowWidth, windowHeight,
0,0,windowWidth*.5,windowHeight*.5);
windowX += 10;
if (windowX>photo.width - windowWidth){
windowX = photo.width - windowWidth;
}
}
function startUp(){
setInterval(drawScreen, 100 );
}
When we test this example, we will see that when zoomed out, the image on the canvas
is 50% of its original size. To zoom in, we simply change the scale factor from .5 to a
number greater than 1 :
context.drawImage(photo, windowX, windowY, windowWidth,windowHeight,
0,0,windowWidth*2,windowHeight*2);
Example 4-14 changes this single line from Example 4-13 to zoom in rather than zoom
out.
Search WWH ::




Custom Search