美文网首页
canvas(五) 使用图像

canvas(五) 使用图像

作者: 闲不住的李先森 | 来源:发表于2017-11-03 14:44 被阅读0次

使用图像


canvas 具有操作图像的能力。可以用于动态的图像合成或者作为图像的背景,以及游戏界面(Sprites)。浏览器支持的任意外部图片格式都可以使用,还可以使用同一个页面中其他canvas元素生成的图片作为图片源。

引入图像到 canvas 里需要以下两部基本操作:

  1. 获得一个指向 HTMLImageElement 的对象或者另一个 canvas 元素的引用作为源, 也可以通过提供一个URL的方式来使用图片。
  2. 使用 drawImage() 函数将图片会知道画布上。

获得需要绘制的图片

canvas 的API 可以使用下面这些类型中的一种作为图片的源:

HTMLImageElement
这些图片是由 Image() 函数构造出来的,或者任何的 <img> 元素

HTMLVideoElement
用一个HTML的 <video> 元素作为图片源,可以从视频中抓取当前帧作为一个图像

HTMLCanvasElement
可以使用另一个 <canvas> 元素作为图片源。

ImageBitmap

使用相同页面内的图片

  • document.images 集合
  • document.getElementsByTagName() 方法
  • 使用指定图片的ID document.getElementById() 获得

使用其他域名下的图片

HTMLImageElement 上使用 crossOrigin 属性,可以请求加载其他域名上面的图片。

使用其他 canvas 元素

使用 document.getElementsByIdTagName 或者 document.getElementById 方法来获取其他 canvas 元素。

绘制图片

一旦获得了源图对象,我们就可以使用 drawImage 方法将它渲染到 canvas 里。 drawImage 方法有三种形态,最常见的是:

drawImage(image,x,y)
其中 image 是image 或者 canvas 对象,x/y是目标在 canvas里的起始坐标。

function draw() {
    var ctx = document.getElementById('canvas').getContext('2d');

    var img = new Image()
    img.onload = function() {
        ctx.drawImage(img, 0, 0);
    }

    img.src = "https://developer.mozilla.org/@api/deki/files/58/=Canvas_backdrop.png"
}
drawImagedrawImage

缩放 Scaling

drawImage 的第二种形态,增加了两个用于控制图像在 canvas 中的参数。

drawImage(image,x,y,width,height)
这个方法多了2个参数: widthheight,这两个参数用来控制当 canvas 画入时应该缩放的大小。

切片 Slicing

drawImage 方法的第三个也是最后一个变种有8个新参数,用于控制做切片显示的。

drawImage(image,sx,sy,sWidth,sHeight,dx,dy,dWidth,dHeight)
第一个参数是源图像引入,后面的前4个是定义图像源的切片位置和大小,后4个则是定义切片的目标显示位置和大小。

function draw() {
  var canvas = document.getElementById('canvas');
  var ctx = canvas.getContext('2d');

  // Draw slice
  ctx.drawImage(document.getElementById('source'),
                33,71,104,124,21,20,87,104);
}
slicingslicing

相关文章

  • canvas(五) 使用图像

    使用图像 canvas 具有操作图像的能力。可以用于动态的图像合成或者作为图像的背景,以及游戏界面(Sprites...

  • HTML5 - Canvas

    HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像。 Canvas 绘制图像 在使用 ...

  • Canvas

    Canvas绘图- JavaScript 来绘制图像 使用 JavaScript 来绘制图像canvas 元素本身...

  • html5 canvas入门知识

    什么是canvas? 使用canvas,可以在网页上绘制图像。我们常见的图表类网页、地图类网页上面那些复杂的图像、...

  • canvas-09 图像源相关

    常用图像源: 图像元素:img 视频元素video canvas:canvas...

  • 03、HTML5-Canvas(画布)

    一、什么是 Canvas? HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像 画布是...

  • 什么是 Canvas?

    什么是 Canvas? HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像。 画布是一...

  • 03、HTML5-Canvas(画布)

    一、什么是 Canvas? HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像 画布是...

  • 【javascript】Canvas绘图详解

    Canvas绘图 HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像。 画布是一个矩形...

  • canvas

    什么是 canvas? HTML5 的 Canvas 元素使用 JavaScript 在网页上绘制图像。画布是一个...

网友评论

      本文标题:canvas(五) 使用图像

      本文链接:https://www.haomeiwen.com/subject/kuftmxtx.html