首页 > web前端 > H5教程 > 正文

HTML5 CANVAS:绘制图片

PHP中文网
发布: 2018-05-24 13:50:39
原创
5875 人浏览过

HTML5 CANVAS:绘制图片

通过前面的学习,我们现在已经可以在HTML5 canvas中绘制图形和文字,并给它们设置一些样式。我们还可以在中绘制图片。用于在作为绘制源的图片可以是下面的几种元素类型:

HTMLImageElement:可以是由Image()构造函数创建的图片,也可以是任何的元素。

HTMLVideoElement:使用一个HTML

HTMLCanvasElement:也可以使用另一个元素作为图片源。

  绘制图片
  我们可以通过2D上下文的三种方法来在

  •   drawImage(image, dx, dy);

  •   drawImage(image, dx, dy, dw, dh);

  •   drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dw, dh);


  基本绘制图片方法:drawImage(image, dx, dy)

  这个方法是在

  下面是一个例子。这个例子在

var ctx = document.getElementById('ex1').getContext('2d');
var img = new Image();
img.onload = function(){
    ctx.drawImage(img,0,0);
};
img.src = 'img/canvas-image-1.jpg';
登录后复制
      上面的代码的返回结果如下:

962.png

  绘制并缩放图片:drawImage(image, dx, dy, dw, dh)
  第二种在
  下面的例子中,我们将绘制的图片缩小1/3左右,然后将它重复排列形成一个网格。

var ctx = document.getElementById('ex2').getContext('2d');
var img = new Image();
img.onload = function(){
    for (var i=0;i<4;i++){
      for (var j=0;j<5;j++){
        ctx.drawImage(img,j*60,i*60,60,60);
      }
    }
};
img.src = &#39;img/canvas-image-2.jpg&#39;;
登录后复制

  上面的代码的返回结果如下:

963.png


  图片切片方法:drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dw, dh)
  第三种在中绘制图片的方法有8个参数。image是源图片,sx和sy是“sourceX”和“sourceY”的简写,这两个参数决定从什么位置开始在源图片上裁剪出一个矩形区域,这个区域的图片将会被绘制在Canvas中。sWidth和sHeight表示矩形区域的宽度和高度。剩下的4个参数和上面的绘制图片方法中的描述相同。看下面的图片,图片上标出了各个参数的位置。

964.jpg

  来看下面的一个例子。这个例子中,我们将源图片剪裁出一部分,然后将它绘制在canvas的一个边框图片之上。

var canvas = document.getElementById(&#39;ex3&#39;);
var ctx = canvas.getContext(&#39;2d&#39;);
// 绘制图片切片
ctx.drawImage(document.getElementById(&#39;source&#39;),
            98, 205, 104, 124, 21, 20, 87, 104);
// 绘制边框图片
ctx.drawImage(document.getElementById(&#39;frame&#39;),0,0);
登录后复制
      上面的代码得到的结果如下:

965.png

  创建和调用图片
  在你能够在Canvas中绘制图片之前,你需要创建一个Image对象,然后将图片加载到内存中。下面是完成这个操作的js代码:

var image = new Image();
image.src = "img/sample.png";
登录后复制

  在你能够绘制图片之前,图片必须被完全加载。为了确保图片被完全加载,你可以为图片添加一个事件监听,这个事件监听中的方法会在图片被完全加载之后被调用。下面是一个示例代码:

image.addEventListener(&#39;load&#39;, drawImage1);
登录后复制
      或者:
var img = new Image();
img.onload = function(){
    ctx.drawImage(img,0,0);
};
登录后复制

以上就是HTML5 CANVAS:绘制图片的内容,更多相关内容请关注PHP中文网(www.php.cn)!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!