基于canvas实现的多功能画板源码

本示例基于Canvas实现的多功能画板,在我们平时的应用项目中都会用到该代码。 所以共享出来供大家后续的项目上应用。

画板功能支持常用的,点,线,面的绘制。支持清除,保存,新建。

// 多边形
    poly.hover(function(){
        bian.fadeIn();
    },function(){
        bian.fadeOut();
    })

// 绘制形状
    typechoose.each(function(index,ele){
        $(ele).click(function(){
            typechoose.removeClass("typeactive");
            $(this).toggleClass("typeactive");
            cut.css({color:"#fff",backgroundColor:"#5bd219",opacity:1});
            copy.css({color:"#fff",backgroundColor:"#5bd219",opacity:1});
            type=$(this).attr("data");
            if($(this).is(".line")||$(this).is(".pen")){
                style="stroke";
                $(".stroke").addClass("styleactive");
                $(".fill").css({display:"none"}).removeClass("styleactive");
            }else{
                $(".fill").css({display:"block"});
            }
        })
    })
    // 描边、填充单击事件
    stylechoose.each(function(index,ele){
        $(ele).click(function(){
            style=$(this).attr("class");
            stylechoose.removeClass("styleactive");
            $(this).toggleClass("styleactive");
        })
    })
    // 剪切
    cut.click(function(){
        type=$(this).attr("data");
        typechoose.removeClass("typeactive");
        $(this).css({color:"#5bd219",backgroundColor:"#fff"}).toggleClass("shezhistyle");
        iscut=true;
    })
    copy.click(function(){
        type="cut";
        typechoose.removeClass("typeactive");
        $(this).css({color:"#5bd219",backgroundColor:"#fff"}).toggleClass("shezhistyle");
        iscut=false;
    })
    // 设置
    shezhi.each(function(index,ele){
        if($(ele).is(".cut")||$(ele).is(".copy")){
            return;
        }else{
            $(ele).click(function(){
                $(this).css({color:"#5bd219",backgroundColor:"#fff"}).animate({opacity:0.99},200,function(){
                    $(this).css({color:"#fff",backgroundColor:"#5bd219",opacity:1});
                });
            })
        }
    })
    // 撤销
    back.click(function(){
        arr.pop();
        obj.clearRect(0,0,width,height);
        if(arr.length>0){
            obj.putImageData(arr[arr.length-1],0,0,0,0,width,height);
        }
    })
    // 清除
    clear.click(function(){
        arr=[];
        obj.clearRect(0,0,width,height);
    })
    // 保存
    save.click(function(){
        var reg=canvas.toDataURL("image/png");//跳转页面手动保存
//        var reg=canvas.toDataURL("image/png").replace("image/png","image/octet-stream");//直接自动保存下载
        location.href=reg;
    })
    // 新建画布
    create.click(function(){
        xinjian.fadeIn();
    })
    create_close.click(function(e){
        e.stopPropagation()
        xinjian.fadeOut();
    })
    canvasWidth.οnblur=function(){
        if(this.value<=this.min){
            this.value=this.min;
        }
        if(this.value>=screenWidth-295){
            this.value=screenWidth-295;
        }
        width=this.value;
    }
    canvasHeight.οnblur=function(){
        if(this.value<=this.min){
            this.value=this.min;
        }
        if(this.value>=screenHeight-15){
            this.value=screenHeight-15;
        }
        height=this.value;
    }
    ding.οnclick=function(e){
        canvas.width=width;
        canvas.height=height;
        canvas.style.left=(screenWidth+295-canvas.width)/2+"px";
        canvas.style.top=(screenHeight-5-canvas.height)/2+"px";
        arr=[];
        obj.clearRect(0,0,width,height);
        e.stopPropagation()
        xinjian.fadeOut();
    }
    // 颜色选择
    colorchoose.οnchange=function(){
        color=this.value;
    }
    // 粗细改变
    widthchoose.οnchange=function(){
        linewidth=this.value;
    }
    //多边形边数
    polychoose.change(function(){
        n=this.value;
    })

完整源码下载地址: 基于canvas实现的多功能画板代码.zip-互联网文档类资源-CSDN下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

珞珈鸡丝

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值