Canvas学习系列一:初识canvas

最近你开始在学习canvas,打算把学习canvas的整个学习过程当中的一些笔记与总结记录下来,如有什么不足之处还请大神们多多指出。

 

1. canvas介绍

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

var canvas = getElementById('canvas');var context = canvas.getContext('2d');

登录后复制

 

2. canvas的后备内容

Canvas元素之间包含的文本,这种文本称为 “后备内容”,只有在浏览器不支持canvas元素时才会显示该文本内容

当前浏览器不支持canvas元素,请更换浏览器

登录后复制

 

3. Canvas的尺寸

canvas元素时默认宽为300px、高为150px。

我们可以通过canvas的width,height属性去修改canvas的大小,我们也可通过CSS去修改canvas元素的大小。但是二者的修改是有区别的。

canvas实际上有两套尺寸:

一个是canvas元素的大小,一个是canvas绘图表面的大小。

当我们用canvas的属性width,height时实际上我们同时修改了元素的大小与绘图表面的大小

当我们用CSS来设定时,是会修改canvas元素的大小,不会影响绘图表面的大小,这时浏览器就会对绘图表面缩放,会出现我们不想得到的效果

 

width与height属性修改canvas尺寸大小时的表现

当前浏览器不支持canvas,请更换浏览器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);

登录后复制

 

Canvas学习系列一:初识canvas

 

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

        canvas尺寸问题    #canvas {            margin: 0 auto;            padding: 0;            width: 600px;            height: 300px;            border: 1px solid #ccc;        }Canvas学习系列一:初识canvas当前浏览器不支持canvas,请更换浏览器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);

登录后复制

 

Canvas学习系列一:初识canvas

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

当前浏览器不支持canvas,请更换浏览器

登录后复制

 或者

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

登录后复制

 

 

4. canvas API

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

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

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

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

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

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。 

        canvas尺寸问题    #canvas {            margin: 0 auto;            padding: 0;            display: none;        }Canvas学习系列一:初识canvas当前浏览器不支持canvas,请更换浏览器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;

登录后复制

 

 

 

toBold():

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

 

参考文章:

MDN Web 技术文档

 

以上就是Canvas学习系列一:初识canvas的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2910937.html

(0)
上一篇 2025年3月11日 04:37:47
下一篇 2025年2月21日 13:15:03

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 使用canvas设计出一个简易的画板

    前面讲了一部分的canvasapi的基础知识,光看api的介绍确实是很无趣乏味,需要一点可以激发内心的激情的东西来激励自己来学习,于是就了伴随canvasapi学习的小实例,这样通过api的知识,结合小实例的应用,就可以更好的去理解canv…

    2025年3月11日
    200
  • 零基础学习HTML5

    1个html5基础入门教程,4个html5小项目教程,带你零基础入门学习html5。 【HTML5基础入门】 教程将会介绍HTML5中的新特性,包括结构标签、新型表单标签、文件操作、Canvas、本地存储等。适合对前端编程有兴趣,已经学了H…

    2025年3月11日 编程技术
    200
  • 怎么使用Canvas绘制虚线

    上一章节我们说到,线性路径的绘制,主要利用movoto(),lineto()等方法,当然 canvas 2d api 也提供了虚线的绘制方法,canvasrenderingcontext2d.setlinedash(); 下面我们就来看看虚…

    2025年3月11日 编程技术
    200
  • 高德地图+canvas画图结合实现一个小项目

      之前朋友委托有个创业项目,想让我帮忙,正好那段时间有点闲,半推半就中就答应下来了。   入了团队才发现,该项目前后端分离,后端工程师已就位主要实现接口,IOS端工程师也已就位,还差一个web前端工程师。背脊一凉,我之前虽然写过一些js和…

    2025年3月11日 编程技术
    200
  • Angular2应该如何学习?

    安装环境,首先需要安装cli,记得全局安装 #angular cli安装npm install -g angular-cli 登录后复制   cli安装后,我们可以用ng开头的指令(就当做npm理解就行),下面创建项目 #安装相关项目包,具…

    编程技术 2025年3月11日
    200
  • HTML5 canvas学习的实例介绍

    1.html5中的canvas标签的创建 window.onload = function(){ createCanvas(); } function createCanvas(){ var canvas_width= 200, canva…

    编程技术 2025年3月11日
    200
  • 分享一个用canvas合成海报图片的移动端项目

      最近做了一个用canvas合成海报图片的移动端项目,由于一点canvas基础都没有,所以去网上搜了一位前辈的demo,但是开发过程中遇到了很多问题,现将所遇问题及解决方法总结如下:   1、移动端canvas项目适配全屏问题   问题描…

    2025年3月11日
    200
  • canvas中线段的端点与连接点详解

            在canvas中,线段也是路径中的一种,被称之为线性路径。在canvas中绘制线性路径主要用到moveto(x,y)、lineto(x,y)和stroke()几个方法,让我们来回忆下线宽的用法。 function drawL…

    2025年3月11日 编程技术
    200
  • canvas基础的学习

    canvas(画布)是html5新增的标签元素,用来定义图形,比如图表和其他图像。标签只是图形容器,必须使用脚本(通常为javascript)来绘制图形。 canvas与svg的区别   canvas是HTML5提供的新元素,而svg存在的…

    2025年3月11日 编程技术
    200
  • h5新特性及网页布局实例

    什么是html5:html5 是下一代的html,将成为 html、xhtml 以及 html dom 的新标准。 为 HTML5 建立的一些规则: 新特性应该基于 HTML、CSS、DOM 以及 JavaScript。 减少对外部插件的需…

    2025年3月11日
    200

发表回复

登录后才能评论