zoukankan      html  css  js  c++  java
  • canvas画布使用总结

    H5自定义画布:(下面复制粘贴就能用了)
        HTML部分:
            <canvas id="canvas" style="border: 1px solid #999">
            </canvas>
        JS部分:        
            //画板
            var canvas = document.getElementById("canvas");
            var ctx = canvas.getContext("2d");
            ctx.lineWidth = 1.0;
            canvas.addEventListener('touchstart',function(event){//触摸点按下事件
                stopDefault();
                if (event.targetTouches.length == 1) {
                    var touch = event.targetTouches[0];
                    ctx.beginPath();
                    ctx.moveTo(touch.clientX-canvas.offsetLeft,touch.clientY-canvas.offsetTop);
                    canvas.addEventListener('touchmove',function (event) {//手机拖动触摸点事件
                        var touche = event.targetTouches[0];
                        ctx.lineTo(touche.clientX - canvas.offsetLeft, touche.clientY - canvas.offsetTop);
                        ctx.stroke();
                    },false)
                    canvas.addEventListener('touchend',function (event) {//手机离开屏幕的事件
                        ctx.closePath();
                        startDefault();
                    },false)
                }
            },false)
            
            //清空画布
            $("#cx").click(function(){//重新设置高或宽,便能重置画布
                var c=document.getElementById("canvas");  
                var cxt=c.getContext("2d");  
                c.height=c.height;
            })    
        
            //将某段HTML通过canvas转化成图片显示
            例如:<div id="html">要转化成Image图片的HTML代码</div>   //要转化成Image图片的HTML代码
                  <img id="img" src="" />   //通过该图片显示出来
                  
                  1.首先引入<script type="text/javascript" src="${pageContext.request.contextPath}/js/html2canvas.js"></script>
                  2.通过下面代码获取到DOM对象,然后将其base64数据付给图片的src即可显示
                  var DOM=document.getElementById("html");
                  html2canvas(DOM).then(function(canvas) {
                      var imageData = canvas.toDataURL();
                      $("#img").attr("src",imageData);
                  });
            
    //将某一个画布的内容,复制到另一块画布上
    HTML部分:
        <canvas id="canvas" style="border: 1px solid #999">
            用户画的画布
        </canvas>
        <canvas id="canvas_fz" style="border: 1px solid #999">
            要复制过去的画布
        </canvas>
    JS部分:    
    var canvas=document.getElementById("canvas");//用户画的签名
    var ctx=canvas.getContext("2d");
    var imgData=ctx.getImageData(0,0,$("#canvas").width(),$("#canvas").height());//通过getImageData(左上角坐标,右上角坐标,获取的宽度,获取的高度)获取用户画的像素
    
    var canvas_fz=document.getElementById("canvas_fz");
    $(canvas_fz).attr("width",$("#canvas").width()).attr("height",$("#canvas").height()); //设置要复制到画布的大小
    var canvas_fz_context=canvas_fz.getContext("2d");
    canvas_fz_context.putImageData(imgData,0,0);//通过putImageData()将画布附上
            
            
            
            通过canvas将图片进行压缩,获取base64数据
            <img id="image-1" />
            
            var img = new Image();//首先new一个Image对象
            img.src=base64;//这里的base64是要压缩的图片的base64数据
            var canvas = document.createElement("canvas");//获取画布对象
            var context = canvas.getContext("2d");
            canvas.width = ($("#image-1").width());设置画布大小,与显示的图片大小一样
            canvas.height = ($("#image-1").height());
            // 核心JS就这个
            context.drawImage(img,0,0,canvas.width,canvas.height);
            
            var data=canvas.toDataURL();//这样通过toDataURL()方法就获取到了压缩后的base64数据
            
  • 相关阅读:
    include包含文件查找的顺序
    cookie知多少
    关于“异步可插协议”(About Asynchronous Pluggable Protocols(APPs))
    win7+vs2010下编译chrome
    chrome命令行参数
    头文件预编译
    IBindStatusCallback 状态码
    DEP相关
    调试子进程
    windbg 调试
  • 原文地址:https://www.cnblogs.com/AnswerTheQuestion/p/8317892.html
Copyright © 2011-2022 走看看