利用canvas的getimageData和putimageData进行图像处理

canvas ImageData代码总览<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title></head><bo
摘要由CSDN通过智能技术生成

canvas ImageData

  1. 代码总览
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <canvas id="wrap0" width="754" height="535" style="border:#000 1px solid;"></canvas>
    <canvas id="wrap" width="754" height="535" style="border:#000 1px solid;"></canvas>
    <canvas id="wrap2" width="754" height="535" style="border:#000 1px solid;"></canvas>
    <canvas id="wrap3" width="754" height="535" style="border:#000 1px solid;"></canvas>
    <canvas id="wrap4" width="754" height="535" style="border:#000 1px solid;"></canvas>
</body>
<script>
    let cav0 = document.getElementById('wrap0')
    let cav = document.getElementById('wrap')
    let cav2 = document.getElementById('wrap2')
    let cav3 = document.getElementById('wrap3')
    let cav4 = document.getElementById('wrap4')
    let ctx0 = cav0.getContext("2d")
    let ctx = cav.getContext("2d")
    let ctx2 = cav2.getContext("2d")
    let ctx3 = cav3.getContext("2d")
    let ctx4 = cav4.getContext("2d")
    let img = new Image()
    img.src = "cxk.jpg"
    img.onload = function(){
   
        ctx0.drawImage(img,0,0)
        //转base64
        let base64Img = new Image()
        base64Img.src = cav0.toDataURL()
        document.body.append(base64Img)

        cav0.toBlob((blob)=>{
   
            console.log(blob.slice(0,blob.size))
            console.log(blob)
        })
        //图片反相
        let newImageData = ctx0.getImageData(0,0,754,535)
        for(let i=0;i<newImageData.data.length;i+=4){
   
            newImageData.data[i] = 255 - newImageData.data[i]
            newImageData.data[i+1] = 255 - newImageData.data[i+1]
            newImageData.data[i+2] = 255 - newImageData.data[i+2]
            newImageData.data[i+3] = 255 
        }
        ctx.putImageData(newImageData,0,0)
        //图片黑白 Gray = 0.2989 * R + 0.5870 * G + 0.1140 * B
        let newImageDataTwo = ctx0.getImageData(0,0,754,535)
        
        for(let i=0;i<newImageDataTwo.data.length;i+=4){
   
            let gray = 0.2989 * newImageDataTwo.data[i] + 0.587 * newImageDataTwo.data[i+1] + 0.114 * newImageDataTwo.data[i+2]
            newImageDataTwo.data[i] =  gray
            newImageDataTwo.data[i+1] =  gray
            newImageDataTwo.data[i+2] =  gray
            newImageDataTwo.data[i+3] = 255 
        }
        ctx2.putImageData(newImageDataTwo,0,0)
        //高斯模糊
        let newImageDataThree = ctx0.getImageData(0,0,754,535)
        newImageDataThree = blur(newImageDataThree,10,6)
        ctx3.putImageData(newImageDataThree,0,0)
        //马赛克
        let newIma
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
html5 canvas填色画游戏代码是一款适合儿童玩的益智类填色游戏,通过选中色块,来给模型填充颜色。支持多种模型选择填色效果。 function extend(O1,O2){     for(var i in O2){         O1[i]=O2[i];     } } function each(arr,f){     for(var i = 0;i<arr.length;i ){         f.call(arr[i],i,arr[i]);     } } function dataInfo(Obj,x,y){     var c=document.createElement("canvas");     var txt= c.getContext("2d");     c.width=Obj.img.width;     c.height=Obj.img.height;     txt.drawImage(Obj.img,0,0);     var data=txt.getImageData(x-1,y-1,3,3);     var num=0;     for(var q=0;q<data.data.length;q =4){         num =data.data[q 3];     }     num=num/9;     return parseInt(num); } var HGAME=new Object(); HGAME.event=new Object();//事件对象 HGAME.event.clickBuffer=new Array();//缓存要添加事件的节点 click buffer HGAME.animate=function(Obj){     var defaultObj={         time:30,//动画间隔         frequency:-1,//动画次数 -1表示无限制         action:function(){},//动画每一帧的动作         lastAction:function(){}//最后一次动画执行完成触发函数     };     extend(defaultObj,Obj);     var oldTime=new Date();     var newTime=null;     this.time=defaultObj.time;     this.frequency=defaultObj.frequency;     this.action=defaultObj.action;     this.lastAction=defaultObj.lastAction;     this.stop=function(){         cancelAnimationFrame(this.INT_BUFFER);     };

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值