HTML5入门十---Canvas画布实现画图(一)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
body{
background: white;
}
.ToolBar{
float: left;
font-family: "微软雅黑";
font-size: 14px;
font-variant: small-caps;
text-align: center;
background: #F2F7EE;
padding: 10px 15px 3px 10px;
margin-bottom: 1px;
margin-right: 1px;
border: 1px solid #7B899B;
}
.ToolBar button{
padding: 6px;
margin: 7px 2px;
font-variant: normal;
font-size: 12px;
}
canvas{
border: 1px solid #7B899B;
}
img{
padding: 2px;
border: 2px solid #F2F7EE;
}
img:hover{/*当鼠标悬停在图片上*/
border: 2px groove #E4F0FE;
background: white;
}
img.Selected{
border: 2px groove #E4F0FE;
}
#saveCopyContainer{
display: none;
}
#saveCopyContainer img{
width: 250px;
height: 150px;
}
.CanvasContainer{
}
</style>
<script type="text/javascript">
var canvas;
var context;
var isDrawing=false;
window.onload=function(){
canvas = document.getElementById("drawingCanvas");
context = canvas.getContext("2d");
canvas.onmousedown = startDrawing;
canvas.onmouseup = stopDrawing;
canvas.onmouseout = stopDrawing;
canvas.onmousemove = draw;
}
function startDrawing(e)
{
isDrawing = true;
context.beginPath();
context.moveTo(e.pageX-canvas.offsetLeft,e.pageY-canvas.offsetTop);
}
function stopDrawing()
{
isDrawing=false;
}
function draw(e)
{
if(isDrawing)
{
var x = e.pageX-canvas.offsetLeft;
var y = e.pageY-canvas.offsetTop;
context.lineTo(x,y);
context.stroke();
}
}
function changeColor(color,imgEle)
{
context.strokeStyle = color;
imgEle.className = "Selected";
}
function changethickness(thickness,imgEle)
{
context.lineWidth = thickness;
imgEle.className = "Selected";
}
function clearCanvas(){
context.clearRect(0,0,canvas.width,canvas.height)
}
function saveCanvas(){
var imageCopy = document.getElementById("saveImageCopy");
imageCopy.src = canvas.toDataURL();
var imageContainer = document.getElementById("saveCopyContainer");
imageContainer.style.display = "block";
}
</script>
</head>
<body>
<div class="Toolbar">
<img id="redPen" src="img/pen_red.gif" alt="Red Pen"
onclick="changeColor('rgb(212,21,29)',this)"/>
<img id="greenPen" src="img/pen_green.gif" alt="Green Pen"
onclick="changeColor('rgb(131,190,61)',this)"/>
<img id="bluePen" src="img/pen_blue.gif" alt="Blue Pen"
onclick="changeColor('rgb(0,86,166)',this)"/>
</div>
<div class="Toolbar">
<img src="img/pen_thin.gif" alt="Thin Pen"
onclick="changethickness(1,this)"/>
<img src="img/pen_medium.gif" alt="Medium Pen"
onclick="changethickness(5,this)"/>
<img src="img/pen_thick.gif" alt="Thick Pen"
onclick="changethickness(10,this)"/>
</div>
<div>
<canvas id="drawingCanvas" width="500" height="500"></canvas>
</div>
<div>
<button onclick="saveCanvas()">Save</button>
<button onclick="clearCanvas()">Clean</button>
<div id="saveCopyContainer">
<img id="saveImageCopy"/><br/>
</div>
</div>
</body>
</html>
素材:






HTML5入门十---Canvas画布实现画图(一)的更多相关文章
- HTML5入门十一---Canvas画布实现画图(二)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- HTML5入门九---Canvas画布
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- HTML5 中的 canvas 画布(一)
---恢复内容开始--- 在HTML5中新添加的元素,canvas 现在支持 IE9+的版本 注意:HTML5 <canvas> 元素用于图形的绘制,通过脚本 (通常是JavaScript ...
- HTML5 中的 canvas 画布(二)
绘制图片 一.绘制图片 context.drawImage()(即把图片放到canvas里) var image = new Image(); // 先创建图片对象 image.src = '图片的 ...
- canvas画布如何画图案例
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- 用html5的canvas画布绘制贝塞尔曲线
查看效果:http://keleyi.com/keleyi/phtml/html5/7.htm 完整代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHT ...
- 自学HTML5第四节(canvas画布详解)
canvas画布好像可是说是HTML5的精华了,一定要学好,嗯嗯,绚丽的东西就要从基础的开始.... 先看看啥玩意叫做canvas 什么是 Canvas? HTML5 的 canvas 元素使用 Ja ...
- “canvas画布仿window系统自带画图软件"项目的思考
"canvas画布仿window系统自带画图软件"项目的思考 首先贴上DEMO图,并没有美化效果.对UI有要求的,请自带补脑技术. 思考一 在做项目的过程中,我发现"工具 ...
- HTML5学习总结——canvas绘制象棋(canvas绘图)
一.HTML5学习总结——canvas绘制象棋 1.第一次:canvas绘制象棋(笨方法)示例代码: <!DOCTYPE html> <html> <head> & ...
随机推荐
- getMeasuredHeight() 与 getHeight() 的区别
http://www.cnblogs.com/x-dev/p/3767538.html?utm_source=tuicool&utm_medium=referral public final ...
- mongodb 3.x WiredTiger存储优化测试
http://pan.baidu.com/s/1sk8zekX 总结:1.使用WiredTiger引擎压缩比例约是MMAP引擎的12倍,2.从时间上看,此次测试100个线程并发,mongodb 3.2 ...
- webpack入门(译)
本文由官方Tutorial Getting Started整理翻译,因为该指南解决了我在上手webpack过程中遇到的诸多问题.所以在这里推荐给各位新手们~ WELCOME 这份指南始终围绕一个简单例 ...
- SQLserver Delete from where 与Oracle delete from where 的差异
1.SQLserver 版本: select @@version; Microsoft SQL Server 2012 (SP1) - 11.0.3128.0 (X64) Dec 28 2012 20 ...
- ActiveMQ之selector的用法
前面的例子中创建一个消息消费者使用的是: sesssion.createConsumer(destination) 另外,还提供了另一种方式: sesssion.createConsumer(dest ...
- ASP.NET中利用Split实现对Checkbox的字符串分离放到DataTable里面
一.背景 昨天唐欢问了我一个问题: 现在有一个CheckBox和一个Label如下图: 要实现选中CheckBox,点击下面打印按钮的时候要做成这个样子的如下图: 简单的说就是档案编号作为表中的一个列 ...
- js 前加分号和感叹号是什么意思?
;!function(){}(); ;!有什么用? 从语法上来开,Javascript中分号表示语句结束,在开头加上,可能是为了压缩的时候和别的方法分割一下,表示一个新的语句开始.所以,如果在一个单 ...
- Sales_item
#ifndef SALESITEM_H #define SALESITEM_H // Definition of Sales_item class and related functions goes ...
- [css]兼容性
div +input 输入框 , 在微信中 有问题 块级元素 行内元素
- 一个Java对象到底占用多大内存
在网上搜到了一篇博客讲的非常好,里面提供的这个类也非常实用: import java.lang.instrument.Instrumentation; import java.lang.reflect ...