• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >html5 > Canvas学习系列一:初识canvas

Canvas学习系列一:初识canvas

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-03

本文主要包含Canvas,canvas,初识,系列,学习等相关知识,匿名希望在学习及工作中可以帮助到您
最近你开始在学习canvas,打算把学习canvas的整个学习过程当中的一些笔记与总结记录下来,如有什么不足之处还请大神们多多指出。

1. canvas介绍

Canvas元素的出现,可以说开启的Web世界绘制动画,图形的大门,其功能非常强大
canvas 元素是HTML5中功能最强大的元素,它的能力主要是通过Canvas中的Context(绘图上下文/绘图环境)对象表现出来的。该对象从canvas本身获取。

<canvas id="canvas" width="600" height="300">当前浏览器不支持canvas,请更换浏览器</canvas> <script type="text/javascript">var canvas = document.getElementById('canvas');var cxt = canvas.getContext('2d'); cxt.font = "38px Arial"; cxt.fillStyle = "#427ACC"; cxt.strokeStyle = "#00116A"; cxt.fillText('Hello Canvas', canvas.width/2 - 110, canvas.height/2 + 15); cxt.strokeText('Hello Canvas', canvas.width/2 - 110, canvas.height/2 + 15);</script>

用CSS去修改canvas元素尺寸大小时的表现

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>canvas尺寸问题</title> <style>#canvas { margin: 0 auto; padding: 0; width: 600px; height: 300px; border: 1px solid #ccc; }</style> </head> <body> <img src="" alt="" id="dataImage"> <canvas id="canvas">当前浏览器不支持canvas,请更换浏览器</canvas> <script type="text/javascript">var canvas = document.getElementById('canvas');var cxt = canvas.getContext('2d'); cxt.font = "38px Arial"; cxt.fillStyle = "#427ACC"; cxt.strokeStyle = "#00116A"; cxt.fillText('Hello World', canvas.width/2 - 110, canvas.height/2 + 15); cxt.strokeText('Hello World', canvas.width/2 - 110, canvas.height/2 + 15);</script> </body> </html>

所以我们在设置Canvas元素的大小时,最好不要使用CSS去设置,我们可以这么去设置

<script type="text/javascript">var canvas = document.getElementById('canvas'); canvas.width = '600'; //canvas的属性取值为非负整数,所以不能带有pxcanvas.height = '300';</script>

4. canvas API

canvas元素并未提供很多API,它只提供了两个属性三个方法,而绘图功能的方法与属性全都是canvas的绘图环境(context)对象提供。

  1. width:设置/获取canvas元素绘图表面的宽度,默认值为300。

  2. height:设置/获取canvas元素绘图表面的高度,默认值为150。

  3. getContext(): 返回canvas元素的绘图环境对象。

  4. toDataURL(): 描述:返回一个data URI:会根据type指定的参数形式将canvas中的图片编码成一个UTF-16字符串的形式。

  5. toBold(): 描述:创建Blob对象,用以展示canvas上的图片;这个图片文件可以被缓存或保存到本地,由User Agent( 用户代理端 )自行决定。

  

toDataURL():

  type 可选参数

  图片格式,默认为 image/png

  encoderOptions 可选参数

  当图片格式为 image/jpeg 或 image/webp的情况下,可以从 0 到 1 的区间内选择图片的质量。

  如果超出取值范围,将会使用默认值 0.92,默认分辨率为96dpi。

   这里值得注意:

  • 如果canvas的高度或者宽度为0时,会返回字符串 "data:,"

  • 如果传入的类型不是 "image/png", 但是返回的值以 "data: image/png"开头,说明传入的类型不支持

  • Chrome支持“image/webp”类型

  尽管在默认情况下canvas对象是一副位图,但是并不是HTML中的img元素,所以我们可以利用toDataURL方法创建一幅表示canvas的图像;也可以利用此方法创建和操作缓冲canvas。 

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>canvas尺寸问题</title> <style>#canvas { margin: 0 auto; padding: 0; display: none; }</style> </head> <body> <img src="" alt="" id="dataImage"> <canvas id="canvas">当前浏览器不支持canvas,请更换浏览器</canvas> <script type="text/javascript">var canvas = document.getElementById('canvas');var dataImage = document.getElementById('dataImage'); canvas.width = '600'; //canvas的属性取值为非负整数,所以不能带有pxcanvas.height = '300';var cxt = canvas.getContext('2d'); cxt.font = "38px Arial"; cxt.fillStyle = "#427ACC"; cxt.strokeStyle = "#00116A"; cxt.fillText('Hello World', canvas.width/2 - 110, canvas.height/2 + 15); cxt.strokeText('Hello World', canvas.width/2 - 110, canvas.height/2 + 15);var dataUrl = canvas.toDataURL(); dataImage.src = dataUrl;</script> </body> </html>

toBold():

目前该方法只有Firefox与IE10浏览器支持


参考文章:

MDN Web 技术文档

以上就是Canvas学习系列一:初识canvas的详细内容,更多请关注微课江湖其它相关文章!

您可能想查找下面的文章:

  • canvas与html5实现视频截图功能示例
  • 详解html5 canvas常用api总结(二)--绘图API
  • HTML5 Canvas玩转酷炫大波浪进度图效果实例(附demo)
  • 详解使用HTML5 Canvas创建动态粒子网格动画
  • 解决canvas转base64/jpeg时透明区域变成黑色背景的方法
  • 用html5的canvas和JavaScript创建一个绘图程序的简单实例
  • HTML5 canvas基本绘图之图形组合
  • HTML5 canvas基本绘图之文字渲染
  • HTML5 canvas基本绘图之绘制曲线
  • HTML5 canvas基本绘图之图形变换

相关文章

  • 2018-12-03html5 section标签是什么意思?html5 section标签的用法总结
  • 2017-08-06HTML5的结构和语义(1):前言
  • 2018-12-03canvas怎样做出黑色背景带特效碎屑烟花
  • 2018-12-03利用Html5实现文件异步上传功能代码实例
  • 2018-12-03必会的移动端Html5的基础知识点
  • 2018-12-03利用html5 canvas破解简单验证码及getImageData接口应用_html5教程技巧
  • 2018-12-03html5 Canvas基本特性的示例代码分享
  • 2018-12-03HTML5开源游戏引擎lufylegend1.5.0发布
  • 2018-12-03IDEA如何安装vue开发插件安装图文教程
  • 2017-08-06使用css如何制作时间ICON方法实践

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • 关于HTML5实现图片压缩上传功能
    • html5中 media(播放器)的api使用指南_html5教程技巧
    • [HTML5代码艺术]17行代码的贪吃蛇小游戏
    • Html5百叶窗效果的示例代码_html5教程技巧
    • 使用HTML5里的classList操作CSS类的详细介绍
    • 关于动画应用的6篇文章推荐
    • 知乎的登录首页背景动画是怎么做到的?JS还是CSS3,求教
    • HTML5-WebSocket实现聊天室示例
    • H5响应式网站效果怎么样?
    • 做为一名在校学生而言,从其职业发展的角度出发,在学习 Web 前端开发的时候有必要花时间兼容 IE6、IE7 这些浏览器吗?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有