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

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

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

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


炫酷的宇宙

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

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 写出来的哈!


混乱时代


蹦跳的世界


你知道吗?
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,711评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,932评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,770评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,799评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,697评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,069评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,535评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,200评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,353评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,290评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,331评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,020评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,610评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,694评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,927评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,330评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,904评论 2 341

推荐阅读更多精彩内容

  • 一:canvas简介 1.1什么是canvas? ①:canvas是HTML5提供的一种新标签 ②:HTML5 ...
    GreenHand1阅读 4,655评论 2 32
  • 啥是canvas? HTML5 标签用于绘制图像(通过脚本,通常是 JavaScript)。不过, 元素本身...
    kiaizi阅读 756评论 0 4
  • 一、canvas简介 1.1 什么是canvas?(了解) 是HTML5提供的一种新标签 Canvas是一个矩形区...
    Looog阅读 3,926评论 3 40
  • 一、canvas简介 1.1 什么是canvas?(了解) 是HTML5提供的一种新标签 Canvas是一个矩形区...
    J_L_L阅读 1,486评论 0 4
  • 天下万物,日月行天 勇而不敢,拈花微笑 得之则少,失之弥多 人刚我柔,随心从缘 心中无敌,无敌天下 舍己从人,归去...
    与你仗剑天涯阅读 1,125评论 0 1