canvas(五)createPattern
/**
* Created by xianrongbin on 2017/3/9.
* 图片填充
*/
var dom = document.getElementById('clock'),
ctx = dom.getContext('2d'),
cirucle = Math.PI; var bgImage=new Image(); bgImage.src='bk.jpg'; bgImage.onload=function () {
//repeat-x,repeat-y,repeat,no-repeat
var patternStyle=ctx.createPattern(bgImage,'no-repeat');
ctx.fillStyle=patternStyle;
ctx.fillStyle(,,ctx.canvas.width,ctx.canvas.height);
}; /**
* demo2 createPattern 提供一种方式,使得我们可以自己绘制自己喜欢的图案
*/ var dom1 = document.getElementById('canvasItem'),
ctx1 = dom1.getContext('2d'); var backCanvas=createBgCanvas();
var patternOne=ctx1.createPattern(backCanvas,'repeat');
ctx1.fillStyle=patternOne;
ctx1.fillRect(,,ctx1.canvas.width,ctx1.canvas.height); function createBgCanvas(){
var backCanvas=document.createElement('canvas');
backCanvas.width=;
backCanvas.height=;
var backCanvasContext=backCanvas.getContext('2d');
drawStar(backCanvasContext,,,,,);
return backCanvas;
} function drawStar(ctx, x, y, outerR, innerR, rot) {
ctx.beginPath();
for (var i = ; i < ; i++) {
var ourRad = ( + i * - rot) / * cirucle,
innerRad = ( + i * - rot) / * cirucle; ctx.lineTo(Math.cos(ourRad) * outerR + x,
-Math.sin(ourRad) * outerR + y); ctx.lineTo(Math.cos(innerRad) * innerR + x,
-Math.sin(innerRad) * innerR + y);
}
ctx.closePath(); ctx.fillStyle = '#c1c';
ctx.strokeStyle = '#fd5';
ctx.lineWidth = ;
ctx.stroke();
ctx.fill();
}
canvas(五)createPattern的更多相关文章
- HTML5 Canvas 绘图
首先要注意: <canvas> 元素不被一些老的浏览器所支持, 但被支持于Firefox 1.5+, Opera 9+, 新版本的Safari, Chrome, 以及Internet Ex ...
- ---JS canvas学习笔记
context的fillStyle属性 fillStyle=color | gradient | image | canvas |video strokeStyle也有上述属性. 1.color:#f ...
- Canvas 笔记(持续更新中)
1.从线条开始 HTML <canvas id="canvas"></canvas> Javascript var canvas=document.getE ...
- canvas填充样式
填充样式主要针对fillStyle.fillStyle除了可以赋值为color,还可以赋值渐变色,包括线性渐变色和径向渐变色,还是和css3里的内容类似. 一.线性渐变 1.设置线性渐变的填充样式 设 ...
- canvas的api小结
HTML <canvas id="canvas"></canvas> Javascript var canvas=document.getElementBy ...
- 探索canvas画布绘制技术
图片来自KrzysztofBanaś 下面我们开始尝试研究不同的绘图风格和技术 - 边缘平滑,贝塞尔曲线,墨水和粉笔,笔和印章和图案 -等等.事实证明,网上没有太多关于此的内容.在下面的示例中,您请大 ...
- HTML5 界面元素 Canvas 參考手冊
HTML5 界面元素 Canvas 參考手冊 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协 ...
- html5图像组合
一 图像组合 1.绘制阴影 在绘制阴影效果时,需要使用Canvas的多个属性配合完成 shadowBlur设置阴影的迷糊级数 shadowOffsetX设置形状与阴影的水平距离 shadowOffse ...
- WPF自学入门(二)WPF-XAML布局控件
上一篇介绍了xaml基本知识,我们已经知道了WPF简单的语法.那么接下来,我们要认识一下WPF的布局容器.布局容器可以使控件按照分类显示,我们一起来看看WPF里面可以使用哪些布局容器用来布局. 在WP ...
- WPF自学入门(六)WPF带标题的内容控件简单介绍
在WPF自学入门(二)WPF-XAML布局控件的文章中分别介绍StackPanel,WarpPanel,DockPanel,Grid,Canvas五种布局容器的使用,可以让我们大致了解容器可以使用在什 ...
随机推荐
- PythonStudy——格式化输入小练习
# 练习:用户输入姓名.年龄.工作.爱好 ,然后打印成以下格式# ------------ info of Egon -----------# Name : Egon# Age : 22# Sex : ...
- kvm报错集
虚拟机console窗口看到一些报错 也可以在终端使用dmesg命令查看 [17617.701174] kvm [17393]: vcpu0 unhandled rdmsr: 0x1ad [19053 ...
- QThread的一些使用心得
qthread这个类主要用于解决pyqt中多线程的问题,常见用法是将后台代码封装在该类的run()方法中,再对qthread对象执行start()函数来启动线程. 但往往一个业务会有粒度划分,多个粒度 ...
- 黄聪:什么是XSS攻击
XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中.比如这些代码包括HTML代码和客户端脚本.攻击者利用XSS漏洞旁路掉访问控制——例如同源 ...
- TCP/IP学习20180629-数据链路层-ARP、IP
1.数据链路层:IP.ARP.RARPARP协议用来找到目标主机的Ethernet网卡Mac地址,IP协议用来承载数据ARP协议找到目标,IP协议传输数据2.IP协议ip协议是TCP/IP协议的核心, ...
- MongoDB复制集技术
复制集搭建 没毛病: https://www.cnblogs.com/nicolegxt/p/6841442.html?utm_source=itdadao&utm_medium=referr ...
- Linux报错:bash: pip: command not found
$ wget https://bootstrap.pypa.io/get-pip.py$ python get-pip.py$ pip -V #查看pip版本 接下来就可以随便pip安装东西了
- JVM内部细节之一:synchronized关键字及实现细节(轻量级锁Lightweight Locking)
在C程序代码中我们可以利用操作系统提供的互斥锁来实现同步块的互斥访问及线程的阻塞及唤醒等工作.然而在Java中除了提供Lock API外还在语法层面上提供了synchronized关键字来实现互斥同步 ...
- 63.1拓展之纯 CSS 创作一个摇摇晃晃的 loader
效果地址:https://scrimba.com/c/cqKv4VCR HTML code: <div class="loader"> <span>Load ...
- Entity Frame Code First 简易教程
简介 什么是ORM 搭建Entity FrameWork CodeFirst应用 数据库迁移 表属性常见配置 Entity FrameWork 一对多.多对多 一.简介 Entity Framewor ...