Canvas学习之切图

复习

上一节,我们学习了从视频中获取一帧来绘画,具体操作方法是在视频播放的过程中获取dom,和正常从dom中获取图片没差别。

学习

这节中,我们将要学习如何在利用canvas来切图。

切图还是利用的是drawImage方法,不过这一次我们要注意好了,不然很容易混淆参数。

*传参介绍

drawImage(img,x,y,width,height,x2,y2,width2,height2)

看到一下传了9个参数,千万不要慌,首先我们看一下,这9个参数分别代表什么。

1.img表示我们从某一个渠道获取到的源图。

2.x,y表示源图上开始剪切区域的左上角坐标。源图坐标以图片左上角为原点。

3.width,height表示例要切出来的图片大小。千万记住,是要切出来的图片大小

4.x2,y2表示切出来的图片在canvas中位置的左上角。

5.width2,height2表示切出来的图片绘制到canvas中的大小

下面进行上手练习

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<html>
<img src="http://image.iget100.com/%E3%80%90%E9%AB%98%E6%95%88%E5%AD%A6%E4%B9%A0%E4%B9%A6%E5%8D%95%E3%80%91%E6%95%99%E4%BC%9A%E5%AD%A9%E5%AD%90%E4%B8%BB%E5%8A%A8%E5%AD%A6%E4%B9%A0%EF%BC%8C%E6%81%90%E8%BE%85%E7%97%87%E5%AE%B6%E9%95%BF%E4%B8%8D%E5%86%8D%E5%A4%A9%E5%A4%A9%E5%B4%A9%E6%BA%839" width="400" height="400">
<canvas id="mycanvas" width="400" height="400"></canvas>
</html>
<script>
const canvas = document.getElementById('mycanvas')
if (canvas.getContext) {
const ctx = canvas.getContext('2d')
const img = new Image()
img.src = "http://image.iget100.com/%E3%80%90%E9%AB%98%E6%95%88%E5%AD%A6%E4%B9%A0%E4%B9%A6%E5%8D%95%E3%80%91%E6%95%99%E4%BC%9A%E5%AD%A9%E5%AD%90%E4%B8%BB%E5%8A%A8%E5%AD%A6%E4%B9%A0%EF%BC%8C%E6%81%90%E8%BE%85%E7%97%87%E5%AE%B6%E9%95%BF%E4%B8%8D%E5%86%8D%E5%A4%A9%E5%A4%A9%E5%B4%A9%E6%BA%839"
img.onload = function () {
ctx.drawImage(img,320,180,200,200, 120,200,200,200)
}
}
</script>

需要注意的是,上图中的图片,原图是1080*1080的,为了方便展示我们才把它用设置成了400。