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. Unity利用SMSSDK实现短信验证码(附代码)

    最近一直在研究如何给app更多实用性的功能,在app进行登录或者注册时,为了方便用户更加快捷的完成登录功能,所以就决定采用短信验证码的方式进行验证登录.在学习的过程中,先使用了Mob的短信服务进行短信 ...

  2. vector 简介

    vector简介 vector是STL中最常见的容器,它是一种顺序容器,支持随机访问.vector是一块连续分配的内存,从数据安排的角度来讲,和数组极其相似, 不同的地方就是:数组是静态分配空间,一旦 ...

  3. 使用devstack/pike部署多节点实验

    目录 第一步:安装Ubuntu16.04 server并以stack为用户名创建用户 第二步:安装git及相关配置 第三步:安装Open vSwitch 2.5.X 第四步:获取devstack脚本 ...

  4. webstorm开发微信小程序代码提醒(webstorm开发工具)

    使用了微信提供的开发工具是真心难用,卡顿厉害.中英文切写注释换相当不爽.还没办法多开窗口,相信大家也遇到过这种现象. 下边我们介绍下webstorm来开发微信小程序的一些配置: File---sett ...

  5. 《Linux内核分析》第三周:Linux系统启动过程

    杨舒雯 原创作品转载请注明出处 Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.实验--使用gdb跟踪调试内 ...

  6. 第二个Sprint冲刺第 八天(燃尽图)

    因为今天停电了,所以我们也休息一天!

  7. 解决eclipse中mybatis的xml配置文件无代码提示问题

    https://blog.csdn.net/IRainReally/article/details/81743506

  8. 返回通知的方法 是void

  9. 阿里Java编码规范

    详细,全面 很不错 阿里 Java编码规范

  10. BZOJ4628 BJOI2016IP地址(trie)

    离线,每次修改相当于对该规则的所有匹配点的值+1,考虑在trie上打加法标记和匹配标记,匹配标记不下传,加法标记下传遇到匹配标记时清空.注意是用b时刻前缀-a时刻前缀,而不是(a-1)时刻前缀,具体我 ...