html5在线画图工具,HTML5 Canvas画板画图工具 可定义笔刷和画布

本文介绍了如何使用HTML5和JavaScript创建一个在线画图工具,用户可以选择不同的笔刷、颜色和画布大小进行绘画。代码主要涉及到Canvas元素的初始化、事件监听以及画布上的绘图操作,展示了HTML5 Canvas在图形绘制方面的强大功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文作者html5tricks,转载请注明出处

75555e3a4351736a921565d99de41ead.png

下面我们来简单地分析一下实现这个HTML5网页画板的原理及代码,代码由HTML以及Javascript组成,主要还是Javascript代码。

HTML代码:

HTML代码非常简单,仅仅是构造了一个canvas容器,我们的画板就在这个地方生成。

Javascript代码:

首先我们通过一组变量来定义画板的样式,以及一些数据的初始化:

var canvas;

var context;

var canvasWidth = 490;

var canvasHeight = 220;

var padding = 25;

var lineWidth = 8;

var colorPurple = "#cb3594";

var colorGreen = "#659b41";

var colorYellow = "#ffcf33";

var colorBrown = "#986928";

var outlineImage = new Image();

var crayonImage = new Image();

var markerImage = new Image();

var eraserImage = new Image();

var crayonBackgroundImage = new Image();

var markerBackgroundImage = new Image();

var eraserBackgroundImage = new Image();

var crayonTextureImage = new Image();

var clickX = new Array();

var clickY = new Array();

var clickColor = new Array();

var clickTool = new Array();

var clickSize = new Array();

var clickDrag = new Array();

var paint = false;

var curColor = colorPurple;

var curTool = "crayon";

var curSize = "normal";

var mediumStartX = 18;

var mediumStartY = 19;

var mediumImageWidth = 93;

var mediumImageHeight = 46;

var drawingAreaX = 111;

var drawingAreaY = 11;

var drawingAreaWidth = 267;

var drawingAreaHeight = 200;

var toolHotspotStartY = 23;

var toolHotspotHeight = 38;

var sizeHotspotStartY = 157;

var sizeHotspotHeight = 36;

var sizeHotspotWidthObject = new Object();

sizeHotspotWidthObject.huge = 39;

sizeHotspotWidthObject.large = 25;

sizeHotspotWidthObject.normal = 18;

sizeHotspotWidthObject.small = 16;

var totalLoadResources = 8;

var curLoadResNum = 0;

接下来开始准备画布,也就是初始化Canvas对象:

function prepareCanvas()

{

// Create the canvas (Neccessary for IE because it doesn't know what a canvas element is)

var canvasDiv = document.getElementById('canvasDiv');

canvas = document.createElement('canvas');

canvas.setAttribute('width', canvasWidth);

canvas.setAttribute('height', canvasHeight);

canvas.setAttribute('id', 'canvas');

canvasDiv.appendChild(canvas);

if(typeof G_vmlCanvasManager != 'undefined') {

canvas = G_vmlCanvasManager.initElement(canvas);

}

context = canvas.getContext("2d"); // Grab the 2d canvas context

// Note: The above code is a workaround for IE 8 and lower. Otherwise we could have used:

// context = document.getElementById('canvas').getContext("2d");

// Load images

// -----------

crayonImage.onload = function() { resourceLoaded();

};

crayonImage.src = "images/crayon-outline.png";

//context.drawImage(crayonImage, 0, 0, 100, 100);

markerImage.onload = function() { resourceLoaded();

};

markerImage.src = "images/marker-outline.png";

eraserImage.onload = function(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值