当前位置:嗨网首页>书籍在线阅读

28-绘制图像窗口

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

4.7.2 绘制图像窗口

为绘制图像窗口,只需更改标准的context.drawImage()函数调用,使用刚刚定义的4个变量值。

context.drawImage(photo, windowX, windowY, windowWidth, windowHeight, 0, 0,
           windowWidth,windowHeight);

仔细观察,可以看出这个为刷新器,看看drawImage()函数操作是如何进行的。数值按顺序传送。

  • photo:图像实例将用作绘制到画布上的源。
  • windowX:开始复制源图像的左上角的x坐标。
  • windowY:开始复制源图像的左上角的y坐标。
  • windowWidth:开始复制源图像的矩形的宽度。
  • windowHeight:开始复制源图像的矩形的高度。
  • 0:画布上图像目标位置左上角的x坐标。
  • 0:画布上图像目标位置左上角的y坐标。
  • viewPortWidth:目标复制的宽度,以像素为单位(更改它的值,可以用来缩放图像)。
  • viewPortHeight:目标复制的高度,以像素为单位(更改它的值,可以用来缩放图像)。

当图像绘制到画布上时,通过更改windowX和windowY的值可以创建平移效果。例4-11说明了如何将图像放到画布上,同时将窗口位置设置为(0,0),其输出结果如图4-12所示。

例4-11 在逻辑窗口中将一个图像放置到画布上

var photo = new Image();
photo.addEventListener('load', eventPhotoLoaded , false);
photo.src = "butterfly.jpg";
var windowWidth = 500;
var windowHeight = 500;
var viewPortWidth=500;
var viewPortHeight=500
var windowX = 0;
var windowY = 0;
function eventPhotoLoaded(){
  drawScreen()
}
function drawScreen(){
    context.drawImage(photo, windowX, windowY, windowWidth, windowHeight,
               0, 0, viewPortWidth,viewPortHeight);
}

68.png

图4-12 在500 × 500的逻辑窗口中显示图像