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. Jmeter(十九)_ForEach控制器实现网页爬虫

    一直以来,爬虫似乎都是写代码去实现的,今天像大家介绍一下Jmeter如何实现一个网页爬虫! 龙渊阁测试开发家园 317765580 Jmeter的爬虫原理其实很简单,就是对网页提交一个请求,然后把返回 ...

  2. 普通程序员看k8s的账户管理

    一.知识准备 ● 账户管理分为:userAccount与serviceAccount ● userAccount:通常是给人设计使用的,并且userAccount不在k8s集群内管理 ● servic ...

  3. 红黑树插入与删除完整代码(dart语言实现)

    之前分析了红黑树的删除,这里附上红黑树的完整版代码,包括查找.插入.删除等.删除后修复实现了两种算法,均比之前的更为简洁.一种是我自己的实现,代码非常简洁,行数更少:一种是Linux.Java等源码版 ...

  4. PAT甲题题解-1072. Gas Station (30)-dijkstra最短路

    题意:从m个加油站里面选取1个站点,使得其离住宅的最近距离mindis尽可能地远,并且离所有住宅的距离都在服务范围ds之内.如果有很多相同mindis的加油站,输出距所有住宅平均距离最小的那个.如果平 ...

  5. 将搬家至CSDN

    emmm,感觉没利用好博客,自己也弄了一个github上面的hexo博客https://clarkkun.github.io/,但是死活传不上去内容,尴尬 ̄□ ̄||,三个博客齐头并进吧

  6. 第二阶段Sprint7

    昨天:将“录制”及“保存”整合到一起,修复出现的Bug,使之能够正常运行. 今天:把视频录制整合到时间提醒里,实现视频提醒 遇到的问题:额,整进去直接就停止运行了..也没有报错..

  7. 《实时控制软件设计》之Automation Studio开发环境

    Automation Studio是贝加莱公司的控制软件开发平台,软件可运行在贝加莱的基于PC的控制器上,基于Automation Studio我们可构建一个完整的控制软件构建.测试和仿真运行平台.本 ...

  8. JS基础(一)异常错误

    EvalError(运算错误): raised when an error occurs executing code in eval() RangeError(范围错误): raised when ...

  9. asp、asp.net、.aspx、.ascx、.ashx的简单说明

    ASP是动态server页面(Active Server Page)的英文缩写.[1]是微软公司开发的取代CGI脚本程序的一种应用.它能够与数据库和其他程序进行交互,是一种简单.方便的编程工具.ASP ...

  10. 深入 Nginx 之配置篇

     常用配置项 在工作中,我们与 Nginx 打交道更多的是通过其配置文件来进行.那么掌握这些配置项各自的作用就很有必要了. 首先,nginx.conf 的内容通常是这样的: ... ... #核心摸块 ...