百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

canvas不懂?看这篇文章就够了

myzbx 2025-01-11 15:34 15 浏览

在前端工作中,canvas是比较重要的一部分,但是很多人入门的人都对其一知半解。阅读本篇文章,带你入门canvas。

定义

<canvas> 标签定义图形,比如图表和其他图像,但必须使用脚本来绘制图形。在画布上(Canvas)可以画一个红色矩形,渐变矩形,彩色矩形,和一些彩色的文字。

首先创建一个简单的画布

html部分

<canvas id="canvas" width="200" height="200"></canvas>

style部分

* {
    margin: 0px;
    padding: 0px;
}
#canvas {
    border: 1px solid pink;
}

js部分

let canvas = document.getElementId('canvas');
// 创建context对象
// getContext('2d')对象是内建的 HTML5 对象,拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法
let ctx = canvas.getContext('2d');
// 绘制一个坐标为(10, 20)宽为100,高为100的红色矩形
// fillRect(x, y, width, height)
ctx.fillStyle = '#f00';
ctx.fillRect(10, 20, 100, 100);

这样一个简单的画布就绘制好了。

在日常中,仅仅这样是不够的,下面介绍一些常用的方法:

画线

修改js部分

let canvas = document.getElementId('canvas');
let ctx = canvas.getContext('2d');
// 从坐标(0, 0)到坐标(200, 200)的直线,使用stroke()方法来绘制
ctx.moveTo(0, 0);
ctx.lineTo(200, 200);
ctx.stroke();

绘制圆形,使用arc(x, y, r, start, stop)

修改js部分

let canvas = document.getElementId('canvas');
let ctx = canvas.getContext('2d');
ctx.beginPath();
ctx.arc(80, 80, 30, 0, 2*Math.PI);
ctx.stroke();

文本

使用canvas文本功能,可以绘制一些好看的字体,比如空心文字,文字渐变等等

修改js部分

let canvas = document.getElementId('canvas');
let ctx = canvas.getContext('2d');
// font 定义字体大小,字体
ctx.font = '30px Arial';
// fillText(text, x, y) 定义实心的文本
// strokeText(text, x, y) 定义空心的文本
ctx.fillText('Hello, world!!!', 10, 10);
ctx.strokeText('Hello, world!!!', 10, 10);

渐变

修改js部分

let canvas = document.getElementId('canvas');
let ctx = canvas.getContext('2d');
// createLinearGradient(x,y,x1,y1)  创建线条渐变
// createRadialGradient(x,y,r,x1,y1,r1)  创建一个径向/圆渐变
let grd = ctx.createLinearGradient(0,0,200,0);
let grd = ctx.createLinearGradient(75,50,5,90,60,100);
grd.addColorStop(0, 'red');
grd.addColorStop(1, 'white');
ctx.fillStyle = grd;
ctx.fillRect(10, 20, 150, 75);

加载图像,使用drawImage(img, x, y)加载图片

修改html部分

<img src="./sheep.jpg" id="sheep"/>
<canvas id="canvas" width="200" height="200"></canvas>

修改js部分

let canvas = document.getElementId('canvas');
let ctx = canvas.getContext('2d');
let img = document.getElementId('sheep');
img.onload = function() {
    ctx.drawImage(img, 10 , 10);
}

看到这里,应该对canvas有了一个基本的认识。

学好canvas,需要翻阅很多资料,不断实践。

相关推荐

Fabric.js使用说明详解(fabric nodejs)

Fabric介绍简介:Fabric是一款基于HTML5Canvas的开源绘图库,它提供了丰富的API和工具,可以轻松地创建交互式的绘图应用程序和游戏。功能特点:介绍Fabric的核心功能,如图形绘制...

如何才能快速将照片变成漫画?(如何才能快速将照片变成漫画风格)

本文分享8个超级详细的照片变漫画教程,让你秒变绘画大师,跟着教程就能亲手将自己的照片制作成精美的漫画,快来一起试试吧~1、PS一款专业的图像处理软件,具备出色的图像处理功能,提供了强大的编辑工具和广...

很少人知道的20个最好用的免费设计软件

不是每个人都能花重金去购置昂贵的软件来装备自己,特别是在刚开始涉足设计这个行业的新手们。我们知道adobe系列软件正版是收费的,而且很贵,虽然说我们国内已经能破解使用,很多人都认为adobe的那些软件...

13个免费的信息图表制作软件推荐(如何制作信息表)

制作信息图表涉及大量的工作,如:数据收集,数据排列,选择和规划信息图表的格式和设计信息图表。在设计信息图表时,选择适当的制图软件是一个非常艰巨的任务。下面为大家推荐13个最好的免费信息图表制作软件。A...

怎么转换图片的格式?(怎么转换图片的格式)

我们日常用到最多的图片格式是JPG/JPEG格式的,其他常见的图片格式包括有bmp,png,tif,gif,svg,cdr,ai,raw,webp等,由于图片的使用场景不同,所以要求的具体格式也会有所...

Adobe的各种图形处理软件分别是做什么的

Adobe公司的Ps,Pr,Ae,An,Ai软件分别的用来做什么的?PS:AdobePhotoshop的简称,用于图像处理、编辑、通道、图层、路径综合运用,图像色彩的校正,各种特效滤镜的使用、特效字...

前端开发中,对图片的优化技巧有哪些?

按照先后顺序有以下:1.去掉无意义的修饰。嗯,我会瞎说吗?除了内容图片,其他的图片的作用是修饰,也就是对于传达信息来说并非本质性的。最大的优化就是压根不要图片!所以在优化之前要做的,首先是确认设计,...

Adobe软件的最佳Linux替代品有哪些?这几款工具不容错过

  如果你是一名平面设计工作者,那么估计很多与你职业相同或者是喜欢并正在学习平面设计的小伙伴们,而如果恰巧你们都是Linux用户的话,那么估计很多的小伙伴都在寻找Adobe的Linux替代品吧。但是,...

精心收集几个免费绘图、修图与照片编辑软件分享一下

本次为大家介绍几款绘图、修图与照片编辑软件,都可以免费授权个人与教育使用,有些开源软件甚至可以在工作上商业使用。其中大多数的绘图软件都是跨平台的,可以在Windows或Mac上安装,对个人照片...

UI设计入门干货!八大软件+技能+素材网站

随着互联网行业的发展,UI设计师越来越多的被提及,UI设计师大火,需求岗位越来越多,也有越来越多的人转行投身UI设计师。UI设计是什么?一般所说的UI设计多指UI视觉设计,主要负责APP、Web、H5...

干货!一文读懂10种主流的图片格式

JPG、PNG、GIF,这些在我们生活中常见的图片格式,你真的了解它们吗?你知道除了这3种图片格式外,还有十多种主流的图片格式吗?每一种图片格式都有自己的特点和适用场景,选择正确的图片类型不仅能提升视...

最佳设计:A-Frame,阅读进度指示器,Colorify.js,交互式讲故事

最佳设计和开发好东西的综述以及一些新版本-第44期(2015年最后一期),包括A-Frame,阅读进度指示器,Colorify.js,交互式讲故事的动画地图路径,简单的Ionic侧菜单过渡等。摇滚...

当爆火的“粘土风”吹进铁路......

展播开始啦⑨<animateattributeName="opacity"begin="0s"dur="0.01"fill="freeze"from="1"to="1"/>&l...

日日是好日:书法艺术文字T恤定制,陶冶性情、现代生活新平衡

书法,心情和思想都融入文字的意境当中,对眼前或身边发生的不愉快事情视而不见、听而不闻,从而进入既轻松又舒适的状态,没有了妄念和烦恼,精神获得享受。本文节选自《DIYSKU个性化定制设计按需印刷行业出海...

从默默无闻到无可替代,Photoshop背后藏着多少不为人知的故事 ?

1990年2月推出了photoshop1.0。当时Photoshop只能在Mac计算机上运行,功能上也只有“工具”面板和少量的滤镜。1991年2月推出了photoshop2.0。该版本发行引发了桌...