Html5 Canvas学习之路(五)
Canvas 图像(上)
Canvas 图像API可以加载图像数据,然后直接将图像应用到画布上。还可以裁切、拼贴图像数据,以显示用户需要的部分。此外,Canvas还提供了像素数据的存储功能,这样就能对其进行操作并且重绘到画布上。
1.图像基础
Canvas API提供对DOM定义的Image对象类型,在javascript中定义图像,创建JavaScript的方法: var image = new Image();,然后设置图像的源文件,只需要将URL指定给新建的Image对象的src属性即可。代码在调用图像之前,必须确认其已正确加载并且准备就绪。为此可以建立一个事件监听器,当图像的load事件触发时立即启动。
一旦图片加载完成,有多种方法可以将其显示在屏幕上。Canvas提供了一个如下方法来将图像数据显示到画布上:
- drawImage(Image,sx,sy,sw,sh,dx,dy,dw,dh);
Image代表图片对象,sx,sy代表开始复制源图像上的“源位置”。sw和sh代表从(sx,sy)处开始取的矩形大小,dx和dx代表绘制到画布上的位置,dw,dh代表绘制到画布上的图像大小。
以下代码展示了在画布上绘制图片的方法:
var image = new Image();
image.addEventListener('load',eventImageLoaded,false);
image.src = 'img/1945.png';
function eventImageLoaded() {
context.drawImage(image,100,100,32,32,100,100,32,32);
}
2.帧式动画
帧式动画是指一项类似的现代技术,通过绘制每一个大小相同的帧来模拟动画。Canvas 可以利用drawImage()函数以及两个拼版来做动画。
需要创建一个count变量来作为计数器,并且还要创建一个计时循环。
代码示例如下:
var count= 20;
var image = new Image();
image.addEventListener('load',eventImageLoaded,false);
image.src = 'img/timg.jpg';
function eventImageLoaded() {
StartUp();
}
function StartUp() {
setInterval(drawScreen, 100);
}
drawScreen();
function drawScreen() {
context.lineWidth = 5;
context.strokeRect(0,0,theCanvas.width,theCanvas.height);
context.drawImage(image,count,20,135,80,100,100,135,90);
count += 135;
console.log(count);
if (count > 587){
count = 20;
}
}
然后可以生成这样一个动画:
Html5 Canvas学习之路(五)的更多相关文章
- HTML5 Canvas学习之路(六)
一个炫酷的计时器 在慕课网看到一个canvas的课,感觉很炫酷,就把它看完了,然后记下来.http://www.imooc.com/learn/133 第一步:绘制要显示的时间 拿小球来绘制具体的数字 ...
- [HTML5 Canvas学习] 基础知识
HTML5 canvas元素通过脚本语言(通常是Javascript) 绘制图形, 它仅仅是一个绘图环境,需要通过getContext('2d')方法获得绘图环境对象,使用绘图环境对象在canvas元 ...
- HTML5 canvas 学习
一.canvas简介 <canvas> 是 HTML5 新增的,一个可以使用脚本(通常为JavaScript)在其中绘制图像的 HTML 元素.它可以用来制作照片集或者制作简单(也不是 ...
- HTML5 canvas学习笔记(一)
canvas是HTML5中新增的标签,下面是各浏览器的支持程度: canvas的默认大小为:宽-300px,高-150px(注意:画布的大小作为canvas标签的行内样式设置,而且是没有“px”单位的 ...
- redis——学习之路五(简单的C#使用redis)
redis官方推荐使用的客户端程序 打星星表示推荐使用的客户端程序,一个笑脸表示最近6个月内有过正式活动的.http://redis.io/clients/#c 从这里我们可以判断官方推荐我们使用Se ...
- zigbee学习之路(五):定时器1(查询方式)
一.前言 今天,我们来学习几乎所有单片机都有的功能,定时器的使用,定时器对单片机来说是相当重要的,有了它,单片机就可以进行一些复杂的工作. 二.原理与分析 谈到定时器的控制,我们最先想到的是要给它赋初 ...
- Html5 Canvas学习
canvas: 首先在html页面中加入canvas标签 <canvas id="canvas" width="1024" height="74 ...
- [HTML5 Canvas学习]使用颜色和透明度
在canvas中使用颜色和透明度,通过context的strokeStyle和fillStyle属性设置,strokeStyle和fillStyle的值可以是任意有效的css颜色字串.可以用RGB.R ...
- [HTML5 Canvas学习]绘制矩形
1.使用strokeRect和fillRect方法绘制矩形 a.strokeRect是绘制一个不填充的矩形 b.fillRect是绘制一个填充的矩形 代码: <script> var ca ...
随机推荐
- ElasticSearch内部基于_version乐观锁控制机制
1.悲观锁与乐观锁机制 为控制并发问题,我们通常采用锁机制.分为悲观锁和乐观锁两种机制. 悲观锁:很悲观,所有情况都上锁.此时只有一个线程可以操作数据.具体例子为数据库中的行级锁.表级锁.读锁.写锁等 ...
- linux作业--第十周
1.在阿里云服务器搭建openv-p-n(有条件的同学再做) 2.通过编译.二进制安装MySQL5.7 编译安装MySQL5.7 安装相关包 yum -y install libaio numactl ...
- 微信小程序书简易支付
这里结合了上一篇的手机号登录接下来的实现功能 https://www.cnblogs.com/xiaoyantongxue/p/15472915.html 登录后进入课程选择页面 1:数据库填入数据 ...
- gitee 的使用
Git安装教程(windows) Git是当今最流行的版本控制软件,它包含了许多高级工具,这里小编就讲一下Git的安装. 下载地址:https://git-scm.com/downloads 首先 ...
- ElasticSearch安装 --- windows版
文件下载地址: 链接:https://pan.baidu.com/s/1_Cy_Sy1-vOvsUxliM-EZHQ 提取码:qpcv 定义: Elasticsearch 是一个分布式的搜索和分析引擎 ...
- CentOS 8 关闭 Firewalld 及 SELinux
检查 SELinux 是否开启 执行 sestatus 指令可以检视目前 SELinux 的状态, 其中一项是是否有开启, 执行以下指令: # sestatus | grep status 如果看到 ...
- NTFS权限详解
NTFS权限是作为一个Windows管理员必备的知识,许多经验丰富的管理员都能够很熟悉地对文件.文件夹.注册表项等进行安全性的权限设置,包括完全控制.修改.只读等.而谈论NTFS权限这个话题也算是老生 ...
- 快速整明白Redis中的字典到底是个啥
字典简介 字典是一种用于保存键值对的数据结构,可以通过键值对中的键快速地查找到对应的值.在Redis所使用的C语言中,并没有内置字典,所以Redis自己实现了字典. 整个Redis数据库的所有的键和值 ...
- kafka 第一次小整理(草稿篇)————分发的基本思路[三]
前言 简单整理一下分发的基本思路. 正文 kafka 原本是做日志管理系统,主要是分发这块的. 那么如何做分发呢? 分发的是什么呢? 分发的其实是日志,日志是事件状态,kafka 内部就叫做Recor ...
- Centos7.x环境下 安装Diszz
镜像下载.域名解析.时间同步请点击 阿里云开源镜像站 一.背景 Discuz 是基于PHP网页,在 Linux 和 windows 两平台均可部署的论坛工具.本实验带你基于 CentOS 快速搭建属于 ...