canvas能做什么?

canvas是HTML5中的新元素,你可以使用javascript用它来绘制图形、图标、以及其它任何视觉性图像。它也可用于创建图片特效和动画。如果你掌握了完整的命令,你可以用canvas创建丰富的web应用程序。如果你想很好的使用canvas,你首先应该很好的掌握javascript。

canvas标签

<canvas width="400" height="300">

</canvas>

当然你也可以通过css来设定!如果你不设定宽高,默认宽高是300*150。

对于低版本的浏览器,你把需要反馈的信息放到canvas标签之间。

<canvas width="400" height="300">

<p>你想看我,就升级浏览器吧!</p>

</canvas>

获取上下文,你所有的绘画操作都是在上下文,目前只支持2d。

window.onad=function(){
var canvas = document.getElementById("myCanvas");
var context= can.getContext("2d");
}

针对Retina显示屏

让canvas清晰的显示在Retina上,以及标准清晰度显示器很简单,只要通过屏幕的像素密度确定的比例乘以canvas就行。首先,你需要了解的像素值如何存储在一个canvas上。

后备存储就是在canvas上存储数据的每个像素的颜色值。我们的目标是为每个显示在画布上的像素在后背存储中提供一个像素。在像素被推到屏幕上之前,它们的值在这里计算。然而,在后备存储器为代表的像素的数量可能不等于象素的数目推到屏幕上。对Retina设备,canvas的宽度和高度被加倍,以维持一致的大小和相对于其他HTML元素的位置,并且作为一个结果,它延伸并模糊了其内容。为了抵消这种伸展,你需要加倍的后备存储时,适当的宽度和高度。

如果你正在处理的光栅图像或视频数据,找出如何进一步优化画布, Retina显示屏的“像素处理。 ”因为在任何情况下一个更大的画布未必有利,你需要选择优化你的Canvas为了Retina设备。首先,确定显示器呈现你的画布是否确是Retina口径。如果是,按照该设备的像素比例缩放后备存储。

一方面视网膜器件有一个2的像素比例,因为有一个2:1的比例的显示像素,以在x和y方向上的后备存储像素。在另一方面,标准清晰度的显示器,映射1的后备存储像素到1显示像素,所以它们的设备的像素比例将始终是1。

在JavaScript中,你可以决定后备比例的因素。首先,看浏览器是否已经定义了window.devicePixelRatio。如果该设备的像素比例大于1时,用户是一个Retina显示器上。确定合适的后备比例的代码如下:

window.onload=function(){
var canvas = document.getElementById("myCanvas");
var context= canvastContext("2d");
var scaleFactor = backingScale(ctx);
if (scaleFactor > 1) {
canvas.width = canvas.width * scaleFactor;
canvas.height = canvas.height * scaleFactor;
// update the context for the new canvas scale
var context = canvas.getContext("2d");
}
}
function backingScale(context) {
if ('devicePixelRatio' in window) {
if (window.devicePixelRatio > 1) {
return window.devicePixelRatio;
}
}
return 1; }

  

第一、介绍Canvas的更多相关文章

  1. 通过游戏学javascript系列第一节Canvas游戏开发基础

    本节教程通过一个简单的游戏小例子,讲解Canvas的基础知识. 最终效果: 点击移动的方块,方块上的分数会增加,方块的行进方向会改变,并且方块的速度会增加. 在线演示 源码 HTML5引入了canva ...

  2. canvas 基本介绍

    # canvas 基本功能介绍 - canvas 能做什么 1. 绘制简单图形线条 2. 裁剪图片 - 开始绘制画布 新建html文档添加 canvas标签 ```html <div style ...

  3. HTML5中canvas介绍

    1.什么是Canvas canvas 是 HTML5 提供的一个用于展示绘图效果的标签 canvas 提供了一个空白的图形区域,可以使用特定的JavaScript API来绘画图形(canvas 2D ...

  4. canvas学习和面向对象(二)

    Canvas 学习(二) 上一篇Canvas 学习(一)中我是用canvas绘制了一些基本和组合的图形. 现在开始绘制图片和动画帧,以及面向对象的升级版本. 还是一样,看代码,所有的代码都托管在git ...

  5. 【温故而知新-Javascript】使用canvas元素(第二部分)

    本文将继续介绍canvas的功能,展示如何绘制更复杂的图形(包括圆弧和曲线),如何使用剪裁区域来限制操作以及如何绘制文本.还是介绍可以应用在画布上的特效和变换,包括阴影.透明度.旋转和坐标重映射. 1 ...

  6. 【高级功能】使用canvas元素(第二部分)

    本文将继续介绍canvas的功能,展示如何绘制更复杂的图形(包括圆弧和曲线),如何使用剪裁区域来限制操作以及如何绘制文本.还是介绍可以应用在画布上的特效和变换,包括阴影.透明度.旋转和坐标重映射. 1 ...

  7. H5 canvas圆形的时钟

    今天用H5中的canvas标签做一个时钟,H5中有很多好用的新增标签,真的很不错. 1.canvas标签介绍 <canvas> 标签定义图形,比如图表和其他图像,你必须使用脚本来绘制图形. ...

  8. canvas图形处理和进阶用法

    前面的话 上一篇博客介绍了canvas基础用法,本文将更进一步,介绍canvas的图形处理和进阶用法 图形变换 图形变换是指用数学方法调整所绘形状的物理属性,其实质是坐标变形.所有的变换都依赖于后台的 ...

  9. canvas粒子系统的构建

    前面的话 本文将从最基本的imageData对象的理论知识说开去,详细介绍canvas粒子系统的构建 效果演示 下面是实例效果演示,博文结尾有全部源码 imageData 关于图像数据imageDat ...

随机推荐

  1. Git的简单操作

    一.Git安装 windows下,可在在git官网下载(https://git-scm.com/downloads) 也有360提供的git(http://baoku.360.cn/soft/show ...

  2. leetcode-递增的三元子序列

    给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列. 数学表达式如下: 如果存在这样的 i, j, k,  且满足 0 ≤ i < j < k ≤ n-1,使得 arr[ ...

  3. 机器学习英雄访谈录之双料 Kaggle 大师:Dr. Jean-Francois Puget

    目录 机器学习英雄访谈录之双料 Kaggle 大师:Dr. Jean-Francois Puget 正文 对我的启发 机器学习英雄访谈录之双料 Kaggle 大师:Dr. Jean-Francois ...

  4. 第二十次ScrumMeeting博客

    第二十次ScrumMeeting博客 本次会议于12月11日(一)22时整在3公寓725房间召开,持续20分钟. 与会人员:刘畅.辛德泰.张安澜.赵奕.方科栋. 1. 每个人的工作(有Issue的内容 ...

  5. 这家伙好像还不错 ZH奶酪-张贺

    http://www.cnblogs.com/CheeseZH/archive/2012/11/23/2783846.html

  6. Alpha 冲刺六

    团队成员 051601135 岳冠宇 051604103 陈思孝 031602629 刘意晗 031602248 郑智文 031602234 王淇 会议照片 今天没有进行站立式会议,由于团队内有些细节 ...

  7. idea不能跟随输入法问题

    在写注释的时候会发现输入法不跟随,这是idea工具本身存在的bug,这个问题很头疼,我找了好多办法都不行,比如删除idea自带的jre,这个办法对我的2018.1.5版本并不适用,以下办法是不需要删除 ...

  8. 为elasticSearch开发c++接口

    一.    ElasticSearch是什么 ElasticSearch是目前开源全文搜索引擎的首选,可以快速存储,搜索和分析海量数据.Stack Overflow,Github等都在使用. Elas ...

  9. poi中如何自定义日期格式

    1. poi的“Quick Guide”中提供了 “How to create date cells ”例子来说明如何创建日期单元格,代码如下: HSSFCellStyle cellStyle = w ...

  10. windows10中远程登录ubuntu16.04的桌面

      1. 安装xrdp sudo apt-get install xrdp 2. 安装vnc4server sudo apt-get install vnc4server tightvncserver ...