HTML5 Canvas绘图

HTML5福利篇--使用Canvas画图 浏览器不支持 阅读详情

http://www.w3school.com.cn/tags/html_ref_canvas.asp

Canvas标签

HTML5 标签用作绘图的容器,使用JS脚本来完成绘图。
如下代码可以获取绘制上下文,类似于C#中的Graphics g = e.Graphics获取画布

var c = document.getElementById("Canvas");
var ctx = c.getContext("2d");

绘制的对象有文本、线条、矩形、圆形等

浏览器支持

IE8以及更早的版本不支持元素

颜色、样式和阴影

属性描述Code
fillStyle设置或返回用于填充绘画的颜色、渐变或模式ctx.fillStyle="#0000ff"; ctx.fillRect(20,20,150,100)
strokeStyle设置或返回用于笔触的颜色、渐变或模式ctx.strokeStyle="#0000ff"; ctx.strokeRect(20,20,150,100)
shadowColor设置或返回用于阴影的颜色ctx.shadowBlur=20; ctx.shadowColor="black";
shadowBlur设置或返回用于阴影的模糊级别ctx.shadowBlur=20; ctx.shadowColor="black";
shadowOffsetX设置或返回阴影距形状的水平距离ctx.shadowBlur=10; ctx.shadowOffsetX=20; ctx.shadowColor="black";
shadowOffsetY设置或返回阴影距形状的垂直距离ctx.shadowBlur=10; ctx.shadowOffsetY=20; ctx.shadowColor="black";

createLinearGradient( )
创建线性渐变(用在画布内容上)

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
var grd=ctx.createLinearGradient(0,0,170,0);
grd.addColorStop(0,"black");
grd.addColorStop(1,"white");
ctx.fillStyle=grd;
ctx.fillRect(20,20,150,100);

在这里插入图片描述

createPattern( ) 在指定的方向上重复指定的元素

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
var img=document.getElementById("lamp");
var pat=ctx.createPattern(img,"repeat");
ctx.rect(0,0,150,100);
ctx.fillStyle=pat;
ctx.fill();

在这里插入图片描述
** createRadialGradient( )** 创建放射状/环形的渐变(用在画布内容上)

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
var grd=ctx.createRadialGradient(75,50,5,90,60,100);
grd.addColorStop(0,"red");
grd.addColorStop(1,"white");
// Fill with gradient
ctx.fillStyle=grd;
ctx.fillRect(10,10,150,100);

在这里插入图片描述
** addColorStop( )** 规定渐变对象中的颜色和停止位置

var c=document.getElementById('myCanvas');
var ctx=c.getContext('2d');
var grd=ctx.createLinearGradient(0,0,170,0);
grd.addColorStop(0,"black");
grd.addColorStop(1,"white");
ctx.fillStyle=grd;
ctx.fillRect(20,20,150,100);

在这里插入图片描述

线条样式

lineCap : 设置或返回线条的结束断点样式
lineJoin : 设置或返回两条线相交时,所创建的拐角类型
lineWidth : 设置或返回当前的线条宽度
miterLimit : 设置或返回最大斜接长度

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.beginPath();
ctx.lineCap="round";
ctx.moveTo(20,20);
ctx.lineTo(20,200);
ctx.stroke();

矩形

rect( ) : 创建矩形

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.rect(20,20,150,100);
ctx.stroke();

fillRect( ) : 绘制"被填充"的矩形

var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
ctx.fillRect(20,20,150,100);//默认填充黑色

strokeRect( ) :绘制矩形(无填充)

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.strokeRect(20,20,150,100);

clearRect( ) : 在给定的矩形内清除指定的像素

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.fillStyle="red";
ctx.fillRect(0,0,300,150);
ctx.clearRect(20,20,100,50);

路径

fill( ) :填充当前绘图(路径)
在这里插入图片描述
stroke( ) : 绘制已定义的路径
在这里插入图片描述
beginPath( ) :起使一条路径,或重置当前路径
moveTo( ) : 把路径移动到画布中的指定点,不创建线条
closePath( ) : 创建从当前点回到起使点的路径
lineTo( ) :添加一个新点,然后在画布中创建从该点到最后指定点的线条
在这里插入图片描述
clip( ) :从原始画布剪切任意形状和尺寸的区域。
quadraticCurveTo( ):创建二次贝塞尔曲线
bezierCurveTo( ):创建三次方贝塞尔曲线
arc( ):创建弧/曲线(用于创建圆形或部分圆)
arcTo( ):创建两切线之间的弧/曲线
isPointInParh( ):如果指定的点位于当前路径中,则返回 true,否则返回 false

转换

scale( ) :缩放当前绘图至更大或更小
rotate( ):旋转当前绘图
translate( ):重新映射画布上的(0,0)位置
transform( ):替换绘图的当前旋转矩阵
setTransform( ):将当前转换重置为单位矩阵。然后运行transform( )

文本

属性
font :设置或返回文本内容的当前字体属性
textAlign:设置或返回文本的当前对齐方式
textBaseline:设置或返回在绘制文本时使用的当前文本基线

方法
fillText( ):在画图上绘制"被填充的"文本
strokeText( ):在画布上绘制文本(无填充)
measureText( ):返回包含指定文本宽度的对象

图像绘制

方法
drawImage( ) :向画布上绘制图像、画布或视频

像素操作

属性
width:返回ImageData 对象的宽度
height:返回ImageData 对象的高度
data:返回一个对象,其包含指定的ImageData 对象的图像数据
方法
createImageData( ):创建新的、空白的ImageData对象
getImageData( ):返回ImageData对象,该对象为画布上指定的矩形复制像素数据
putImageData( ):把图像数据(从指定的ImageData对象)放回画布上

合成

属性
globalAlpha : 设置或返回绘图的当前alpha或透明值
globalCompositeOperation:设置或返回新图像如何绘制到已有的图像上

其他

方法
save( ) :保存当前环境的状态
restore( ):返回之前保存过的路径状态和属性
createEvent( )
getContext( )
toDataURL( )

前端可视化:Fabric.js HTML5 canvas 工具库 Fabric.js 是一个功能强大且操作简单的 Javascript HTML5 canvas 工具库。缩放 scaleX 和 scaleY。反转 scaleX 和 scaleY。平移 top 和 left。以鼠标指针为基准缩放画布。fabric 内置滤镜。旋转角度 angle。以原点为基准缩放画布。自定义边和控制角样式。...... 阅读详情

相关推荐

HTML5 Canvas绘图与交互技术详解

在 canvas 中,fillStyle属性用于定义图形的内部颜色。当你使用fill()方法绘制图形时,fillStyle属性的值将被应用到图形的填充上。// 设置填充颜色为红色// 使用 fill() 方法填充一个矩形在这个例子中,我们首先将fillStyle设置为'red',然后使用fillRect方法绘制了一个填充了红色的矩形。你可以为fillStyle指定十六进制颜色、RGB、RGBA 或者预定义的颜色名称。lineWidth属性用于设置线条的宽度,而。

weixin_36019375的博客 772

学习HTML5 Canvas这一篇文章就够了

一、canvas简介<canvas> 是 HTML5 新增的,一个可以使用脚本(通常为JavaScript)在其中绘制图像的 HTML 元素。它可以用来制作照片集或者制作简单(也不是那么简单)的动画,甚至可以进行实时视频处理和渲染。它最初由苹果内部使用自己MacOS X WebKit推出,供应用程序使用像仪表盘的构件和 Safari 浏览器使用。 后来,有人通过Gecko内核的浏览器 (尤其是Mo

完善飞跃 17万+

EtherCAT从站协议栈---- sampleappl.c 文件解析

这个源文件实际上包含该项目的入口函数main函数。 那么如何找到入口函数呢? 可以进入debug的simulator模式,选中run to main(), 当执行完启动文件startup_cm3.s后就进入了main函数(注意在main函数之前还进入了SystemInit函数), 如下图所示: 这个main函数主要架构如下: int main(void) { HW_Init(); /*PDI(过程数据接口)初始化,这里用的是MCI接.

Jiawei_Z的博客 3066

HTML5画布(canvas)绘制图形

canvas 元素用于在网页上绘制图形 canvas 是 HTML5 新增的元素,可用于通过使用JavaScript中的脚本来绘制图形。 默认情况下它在网页上是一块空白区域,默认大小300*150 注意:canvas画布默认背景色为透明色,可以自行定义背景色...

m0_61843988的博客 5014

①Modbus TCP转Modbus RTU/ASCII网关同步采集无需编程高速轻松组网

MS-A1-50X1系列作为MODBUS TCP通信的服务器进行动作。可通过MODBUS TCP 通信,将 MS-A1-50X1 系列产品通过 RS485 采集的仪器仪表之类的值作为通信数 据输出到 PLC,上位机等。

2401_89571741的博客 1398

Qcom camera hal简介

Qcom camera hal简介

weixin_42136255的博客 7763

【HTML】【一文全解Canvas】从初学到实战,彻底掌握前端绘图神器!

前言一、Canvas 概述二、在 HTML 中使用 Canvas三、Canvas 绘制图形1、绘制矩形2、绘制圆形a. 绘制实心圆形b. 绘制空心圆形四、Canvas 绘制文本五、Canvas 绘制图片六、Canvas 动画效果1、setInterval() 实现动画2、requestAnimationFrame() 实现动画七、Canvas 使用注意事项八、利用Canvas绘制挂钟(原理-绘制弧形)- 简单练习1、 还原坐标系2、 绘制背景3、 绘制时钟指针4、循环绘制。

weixin_55846296的博客 1万+

MarkDown简介(深度解析MarkDown用法)

欢迎使用Markdown编辑器写博客 本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富的快捷键 快捷键 加粗 Ctrl + B 斜体 Ctrl + I...

酷酷的旭 7341

HTML5 canvas绘图基本使用方法

本文介绍了html5 中canvas标签的基本使用方法,详细讲解了其重要的属性和方法

诗渊的博客 7万+

STM32 使用rtthread的DMA 串口发送失败

在一次使用RTthread的DMA 串口发送时,持续性通过DMA 发送串口数据时,偶发发送过程中后续数据包无法正常发送出去,后经查,发现为RT-Thread的串口中断处理有瑕疵,后做出修改。另,为了更方便的排查为题,建议修改。左为修改前,右为修改后。

qq_39294918的博客 1108

基于轻量化网络的干扰信号智能识别算法

针对干扰信号识别时卷积神经网络模型体积大、训练周期长、对硬件存储和计算要求高等问题,本 文提出了一种基于改进轻量级网络模型 SqueezeNet 的干扰信号智能识别算法。该方法首先利用距离多普勒 (Range‑Doppler,RD)处理获得目标及干扰信号的RD图像,接着采用滑窗变换、归一化等技术对RD图像进行重 塑;然后采用基于 RD 信息尺寸的隐层和通道剪枝措施对 SqueezeNet 网络进行改进,缩小了模型尺寸和存储空 间;最后利用不同参数的测试样本拓展网络模型的泛化性能。

qq_43416206的博客 542

HTML5Canvas绘图(上)

1.Canvas绘制步骤 在html5页面中添加canvas元素,定义id属性值以便后面调用            <canvas id="myCanvas" width="500" height="200"></canvas> 使用id寻找页面中的canvas元素           var c=document.getElementById("myCanvas");

最好的一天 1万+

cesium 实现经纬线绘制和经纬度标注

废话不对数直接上线效果图及代码 1.效果图 2.实现代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width,initial-scale=

一碗老面的博客 2569

HTML5中canvas绘图基础详解

H5中新增了重要元素canvas,通过绘制任意图形,借助自带API,通过编写js可以控制各种图形,制作动画效果,对web具有划时代意义。

输入知识,消化知识,输出知识,分享知识,教人让我学习更好,业精于勤荒于嬉,行成于思毁于随 2810

Harmony:C# 动态代码补丁的5大秘密武器

Harmony 是一个开源库,它允许你在运行时修改托管代码(即使用 .NET 或 Mono 编译的语言编写的应用程序)。它通过利用 AOP(面向切面编程)的思想,可以在不重新编译代码的情况下添加、替换或修改方法的行为。这对于游戏模组(Modding)、插件开发以及调试工具非常有用。安装 Harmony要使用 Harmony,你需要首先安装它。Harmony 作为一个 NuGet 包,可以直接通过 Visual Studio 的 NuGet 包管理器进行安装。安装步骤打开 Visual Studio。

java专栏 1191

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【Web】HTML5 Canvas 2D绘图的封装

(原文写自2024年10月9日,整理笔记所以现在发出)HTML5 Canvas并不是一项很新的技术了,但是作为一名业余程序员,我是不需要考虑新旧技术和投入实际生产的问题,相反,我只需要考虑有趣,什么有趣搞什么。在Godot中玩味了一圈CanvasItem的绘图函数,也慢慢补齐了一点三角函数、向量和线性变换的基础之后,发现绘图才是程序中最有意思的内容。关于Canvas的2D绘图指令,确实没有必要重复讲述,有很好的文章和在线文档讲述这些内容。

巽的博客 1761

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

html5 canvas 隐藏边框,HTML5 Canvas 绘图

HTML5火的正热,最近有个想法也是要用到HTML的相关功能,所以也要好好学习一把。好好看了一下Canvas的功能,感觉HTML5在客户端交互的功能性越来越强了,今天看了一下Canvas绘图,下边是几个实例,记下以备后用。1、使用Canvas绘制直线:XML/HTML Code复制内容到剪贴板html>canvas{border:dashed2px#CCC}function$$(id)...

weixin_42253260的博客 1049

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

HTML5之Canvas绘图——使用Canvas绘制图形

HTML5之Canvas绘图——使用Canvas绘制图形的基本教程 HTML5火的正热,最近有个想法也是要用到HTML的相关功能,所以也要好好学习一把。 好好看了一下Canvas的功能,感觉HTML5在客户端交互的功能性越来越强了,今天看了一下Canvas绘图,下边是几个实例,记下以备后用。 Canvas绘制一个加载的动画图片

csdn_chenli 1395

HTML5关键知识点之Canvas绘图深度剖析

本文深入探讨了HTML5中Canvas绘图的关键知识点。首先,文章指出目前尚无标准化的3D canvas,但未来HTML5可能引入相关标准。接着,详细介绍了绘制矩形的属性和方法,包括fillStyle、fillRect、strokeStyle、strokeRect和clearRect的使用。此外,文章还解释了如何通过调整canvas的宽度或高度来重置其状态,并阐述了Canvas的二维坐标系和路径绘制方法,如moveTo和lineTo。最后,文章通过表格形式总结了这些知识点,强调了它们在Canvas绘图中的重

2301_78506709的博客 5486

HTML5关键知识点之Canvas绘图全解析

本文全面解析了HTML5中的Canvas绘图技术,涵盖了<canvas>元素的基本定义、浏览器支持情况、元素外观与获取方法以及绘制简单图形的步骤。文章首先介绍了<canvas>元素作为位图画布的作用,并指出其依赖JavaScript进行图形绘制。接着,详细说明了主流浏览器对<canvas>的支持情况,特别提到IE浏览器需要第三方库的支持。文章还讲解了如何通过添加id属性并使用document.getElementById()方法获取<canvas>元素,以及如

2301_78506709的博客 4827

java canvas详解_HTML5的canvas绘图技术详解

原标题:HTML5的canvas绘图技术详解本篇教程探讨了HTML5的canvas绘图技术详解,希望阅读本篇文章以后大家有所收获,帮助大家HTML5+CSS3从入门到精通 。<canvas元素是HTML5中新添加的一个元素,该元素是HTML5中的一个亮点。Canvas元素就像一块画布,通过该元素自带的API结合Java代码可以绘制各种图形和图像以及动画效果。1.1 浏览器不兼容问题ie9以上...

weixin_39962199的博客 1007

HTML5 Canvas 绘图应用安装与配置指南

HTML5 Canvas 绘图应用安装与配置指南 1. 项目基础介绍 本项目是一个基于 HTML5 Canvas 的绘图应用,它允许用户使用触摸或鼠标在屏幕上进行绘画。该应用能够在 iOS、Android、Windows Phone 以及各种桌面浏览器上运行。项目主要使用 JavaScript 编写,利用了 HTML5 的 Canvas API 实现绘图功能。 2. 项目使用的关键技术和框架 H...

gitblog_00007的博客 874

HTML5系列(4)--Canvas 绘图详解

HTML第五站

欢迎来到这里,希望文章能对你有所帮助 1560

HTML5绘图 笔记1:HTML5 canvas基础

在页面中插入canvas元素 HTML5 元素用于图形的绘制,通过脚本 (通常是JavaScript)来完成. 标签只是图形容器,您必须使用脚本来绘制图形。 注意: 默认情况下 元素没有边框和内容。 <canvas id="myCanvas" style="border:1px solid;" width="200" height="100"></canvas> 绘制...

YanHSama的博客 338

使用 HTML5 canvas 进行 Web 绘图

简介: 新的 HTML5 规范旨在帮助开发人员更轻松的编写出各类 Web 应用,以顺应当前 SaaS,云计算以及 RIA 等技术的最新趋势。在 HTML5 得以广泛推广之前,开发人员通常使用 SVG,VML 等技术进行 Web 绘图操作,但这些基于 XML 的绘图语言声明式的绘图方式并不能满足复杂绘图操作在性能上的需求,比如 Web 游戏所需要的像素级别的绘图能力。HTML5 canvas 元...

wjlgryx的专栏 623

HTML5 Canvas 绘图应用项目教程

HTML5 Canvas 绘图应用项目教程 1. 项目的目录结构及介绍 该项目包含以下目录和文件: lib/:存放项目依赖的库文件,如 jQuery 和 jQuery Mobile。 LICENSE:项目使用的 MIT 许可证文件。 README.md:项目说明文件,包含项目介绍和演示链接。 index.html:项目的主要页面文件,实现基础的 HTML5 Canvas 绘图功能。 index_...

gitblog_01060的博客 908
上一篇: 多点登陆限制,禁止用户多点在线
下一篇: 细说JavaScript单线程的一些事
It_sharp
博客等级 码龄10年 51粉丝 231原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值