首页 技术 正文
技术 2022年11月12日
0 收藏 315 点赞 3,785 浏览 1225 个字

createPattern作用

createPattern() 方法在指定的方向内重复指定的元素。

元素可以是图片、视频,或者其他 <canvas> 元素。

被重复的元素可用于绘制/填充矩形、圆形或线条等等。

网站http://www.w3school.com.cn/tags/canvas_createpattern.asp中基本介绍

语法:

context.createPattern(image,"repeat|repeat-x|repeat-y|no-repeat");

createPattern参数值

参数 描述
image 规定要使用的图片、画布或视频元素。
repeat 默认。该模式在水平和垂直方向重复。
repeat-x 该模式只在水平方向重复。
repeat-y 该模式只在垂直方向重复。
no-repeat 该模式只显示一次(不重复)。

createPattern用法举例

1)使用图片填充

使用到的图片:

canvas createPattern()方法详解

repeat的几种方式,大家可以在jsfiddle上修改代码运行看看效果。

也许你觉得这个图标太大了,想让它变得更小更密,所以想改变image的宽高是否能实现这个效果呢?事实是不能,canvas只会将按照原图大小填充。那怎么解决这个问题呢?

这就用到了下面使用canvas填充的方式

2)使用canvas填充

创建一个临时的canvas,用canvas 的drawImg()方法,对图片进行缩放,然后在再把canvas 传到createPattern里面。以此达到createPattern缩放内容的效果。

3)使用视频填充

和图片填充类似,只需要在createpattern使用video标签即可,但是你也会发现绘制的重复内容只是视频的第一帧内容

         var c = document.getElementById("canvas");
var ctx = c.getContext("2d");
var video = document.createElement("video")
video.src = "https://dl.xueleyun.com/files/mp4_3e100520985a66003c1b9a104fd36143.mp4"
video.onloadeddata = function () {
var pat = ctx.createPattern(video, "repeat");
ctx.rect(60, 10, c.width - 20, c.height - 20);
ctx.fillStyle = pat;
ctx.fill();
}

填充位置

另外需要注意的是,在第一个代码实例中,如果我们将矩形的起始坐标x调整下,渲染出来的效果如下图所示。

通过这个效果你应该能清楚,填充的起始位置是画布的原点,并不是要填充图形rect的起始位置。

canvas createPattern()方法详解

应用实例

刮涂层赢大奖

前面我们的实例中都是用createpattern填充矩形,如果是填充画线stroke的话也是可以的,下面简单实现一个刮涂层的示例,结合鼠标拖拽绘制线条的代码,效果如下:

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,955
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,479
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,291
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,108
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,740
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,775