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>

素材: 

原文地址:https://www.cnblogs.com/beautiful-code/p/5069840.html