美文网首页Web 前端开发
想写出炫酷的画面吗?看看Canvas 吧!

想写出炫酷的画面吗?看看Canvas 吧!

作者: 洪高勇 | 来源:发表于2017-06-21 21:00 被阅读0次

在前端的工作过程中,我们需要用到图片的时候,是怎样的操作呢?

其实,很简单。切吧。没有什么图片是一次切图搞不定的,如果有,那就切两次!

哈哈,好吧。其实,还是有很多种方法让我们能够得到图片的。现在介绍下一种神奇的方法吧,它能够让你通过代码写出画面!想想是不是很有逼格!来吧,让我带你装逼带你飞!

炫酷的宇宙

首先,你要知道,它是什么?

Canvas 

Canvas API(画布)是H5新增的标签,用于在网页实时生成图像。并且可以操作图像内容,基本上也就是通过JS来操作的一种位图。

这里插播一条:位图与矢量图的区别。

矢量图:根据几何特性,通过线段和曲线描述图像

        1、矢量图形与分辨率无关(放大后不失真)

        2、色彩不丰富

        3、文件后缀(.ai  .eps  svg  .dwg  .dxf  .cdr)

        4、占用空间,相对较小

位图:通过像素的一格一格的小点来描述图像(也就可以称作点阵图像)

        1、位图与分辨率有关(放大后失真)

        2、色彩丰富

        3、文件后缀(.bmp  .gif  .jpg  .tif  .psd)

        4、占用空间,相对较大


程序员的色彩

而我们通过Canvas 所写出来的图片都是位图!!!

好了,现在来开始学习Canvas 的基本知识点吧。

首先,通过Canvas 来画线:

在 Body 内 有一个 <canvas id="myCanvas" width="600px" height="400px"></canvas>的封闭标签。通过设置该标签的JS 便可以实现画线的功能了。

var myCanvas = document.getElementById("myCanvas");

var ctx = myCanvas.getContext("2d");

ctx.moveTo(0,0);

ctx.lineTo(300,300);

ctx.lineTo(600,0);

ctx.lineWidth = 10;                 // 设置线的宽度

ctx.strokeStyle = "yellow";         // 设置线的颜色

ctx.stroke();

Canvas 的布局

通过Canvas 来画矩形:(前面同上)

ctx.rect(100,100,200,300);            // 设置矩形的起始点和长宽

ctx.lineWidth = 10;                   // 设置宽

ctx.strokeStyle = "#0000FF"    // 设置颜色

ctx.stroke();

补充》》ctx.fillRect(200,200,150,150);         //  画实心矩形的方法  ctx.fillRect

通过Canvas 来写文本:

ctx.font = "50px 隶书";

ctx.fillText("奥特曼打小怪兽",100,200);                // 后面两个参数设置位置

ctx.strokeText("你在谁的身边看",50,100);

就是这样的效果

最后来看看放射性渐变

var gradient = ctx.createRadialGradient(300,200,10,300,200,200);          //前三个参数,表示小圆心,小半径  后三个参数,表示 大圆心, 大半径

gradient.addColorStop(0,"white");

gradient.addColorStop(0.5,"red");

gradient.addColorStop(0.7,"green");

gradient.addColorStop(1,"yellow");

ctx.fillStyle = gradient;

ctx.arc(300,200,200,0,Math.PI*2);

ctx.fill();

上面效果如图

当然,这些就是基础技能啦!如果你的技能进阶的话,就会有神奇的事情发生哦。比如小面的效果图,也都是Canvas 写出来的哈!

混乱时代 蹦跳的世界 你知道吗?

相关文章

  • 想写出炫酷的画面吗?看看Canvas 吧!

    在前端的工作过程中,我们需要用到图片的时候,是怎样的操作呢? 其实,很简单。切吧。没有什么图片是一次切图搞不定的,...

  • “祝你年年有今日,岁岁有今朝!”

    怎样才能写出酷炫段子?当然是拿荧光闪粉笔写出你的段子。你说酷不酷,炫不炫!? 为什么觉得拉屎好爽,请问我是gay吗...

  • HTML5新增API

    Canvas 画布 canvas用途 游戏 小游戏 图表 报表 如 Charts插件 炫酷效果 banner 模...

  • canvas简单入门(1)

    Canvas 画布 canvas用途 游戏 小游戏 图表 报表 如 Charts插件 炫酷效果 banner 模...

  • H5 新特性01

    Canvas 基础 canvas应用领域 游戏 可视化数据(图表) banner、炫酷效果 地图 ...

  • canvas的简单使用

    Canvas 画布 canvas用途 游戏 小游戏 图表 报表 如 Charts插件 炫酷效果 banner 模...

  • canvas基础

    Canvas 画布基础 canvas用途 游戏 小游戏 图表 报表 如 Charts插件 炫酷效果 banner...

  • 程序员的古怪玩法,H5canvas超炫键盘字母输出游戏

    程序员的古怪玩法,你知道吗?H5canvas超炫键盘字母输出 前端工程师在实际工作中,不用去做很炫酷的特效,只需把...

  • 【Canvas 03】 Canvas时钟效果

    在前一篇文章中,我已经写了canvas如何制作一个百行代码Canvas酷炫倒计时 下面由此衍生出canvas动画时...

  • 2月9日

    canvas实现炫酷小时钟(二) ctx = myCanvas.getcontext('2d'); 获取上下文对象...

网友评论

    本文标题:想写出炫酷的画面吗?看看Canvas 吧!

    本文链接:https://www.haomeiwen.com/subject/unwtcxtx.html