HTML5 -- canvas画板转为图片

效果预览:

这里写图片描述

代码部分:

<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>

    <body>
        <canvas id="canvas" width="600" height="300"></canvas><br>
        <button style="width:80px;background-color:yellow; " onclick='linecolor = "yellow ";'>YELLOW</button>
        <button style="width:80px;background-color:red; " onclick='linecolor = "red ";'>RED</button>
        <button style="width:80px;background-color:blue; " onclick='linecolor = "blue ";'>BLUE</button>
        <button style="width:80px;background-color:green; " onclick='linecolor = "green ";'>GREEN</button>
        <button style="width:80px;background-color:white; " onclick='linecolor = "white ";'>WHITE</button>
        <button style="width:80px;background-color:black;color:white; " onclick='linecolor = "black ";'>BLACK</button>
        <br>
        <button style="width:80px;background-color:white; " onclick="linw=4;">4px</button>
        <button style="width:80px;background-color:white; " onclick="linw=8;">8px</button>
        <button style="width:80px;background-color:white; " onclick="linw=16;">16px</button>
        <br>
        <button id="but10 " style="width:80px;background-color:pink; " onclick="copyimage(); ">EXPORT</button>
        <br>
        <img src="" id="image_png" width="600" height="300">

        <script type="text/javascript">
            var c = document.getElementById('canvas');
            var ctx = c.getContext('2d');

            //画一个黑色矩形
            ctx.fillStyle = 'black';
            ctx.fillRect(0, 0, 600, 300);

            //按下标记
            var onoff = false;
            var oldx = -10;
            var oldy = -10;

            //设置颜色
            var linecolor = 'white';

            //设置线宽
            var linw = 4;

            //添加鼠标移动事件
            canvas.addEventListener('mousemove', draw, true);

            //添加鼠标按下事件
            canvas.addEventListener('mousedown', down, false);

            //添加鼠标弹起事件
            canvas.addEventListener('mouseup', up, false);

            //鼠标按下获取坐标
            function down(event) {
                onoff = true;
                oldx = event.pageX - 10;
                oldy = event.pagey - 10;
            }

            //鼠标弹起取消绘制
            function up() {
                onoff = false;
            }

            //获取鼠标坐标,并根据坐标绘制图像
            function draw(event) {
                if(onoff == true) {
                    var newx = event.pageX - 10;
                    var newy = event.pageY - 10;

                    ctx.beginPath();
                    ctx.moveTo(oldx, oldy);
                    ctx.lineTo(newx, newy);
                    ctx.strokeStyle = linecolor;
                    ctx.lineWidth = linw;
                    ctx.lineCap = 'round';
                    ctx.stroke();

                    oldx = newx;
                    oldy = newy;
                }
            }

            //转canvas保存为base64 dataURL
            function copyimage(event) {
                var img_png_src = canvas.toDataURL('image/png');
                document.getElementById('image_png').src = img_png_src;
            }           
        </script>
    </body>

</html>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值