<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
*{
margin:0;
padding:0;
}
body,html{
height:100%;
overflow: hidden;
background: #616161;
}
#test{
position: absolute;
left:50%;
top:50%;
transform: translate3d(-50%,-50%,0);
background: white;
margin:auto;
}
</style>
</head>
<body>
<canvas id="test" height="400" width="400">
<span>您的浏览器不支持canvas操作!!</span>
</canvas>
</body>
</html>
<script>
var canvas=document.querySelector("#test");
if(canvas.getContext){
var ctx=canvas.getContext('2d');
ctx.save();
ctx.fillStyle='green';
ctx.beginPath();
ctx.fillRect(50,50,100,100);
ctx.restore();
var myData=ctx.getImageData(0,0,canvas.width,canvas.height);
//(49,49)为黑色透明;(50,50)为绿色
var color=getPxInfo(myData,49,49);
console.log(color);
for(var i=0;i<myData.width;i++){
setPxInfo(myData,49,i,[0,0,0,255]);
}
// 设置后将颜色放入图像中
ctx.putImageData(myData,0,0)
}
function getPxInfo(myData,x,y) {
var color=[];
var data=myData.data;
var w=myData.width;
var h=myData.height;
//(x,y) 前面都有x*w+y个像素点
//r
color[0]=data[(y*w+x)*4];
//g
color[1]=data[(y*w+x)*4+1];
//b
color[2]=data[(y*w+x)*4+2];
//a
color[3]=data[(y*w+x)*4+3];
return color;
}
function setPxInfo(myData,x,y,color) {
var data=myData.data;
var w=myData.width;
var h=myData.height;
//(x,y) 前面都有y*w+x个像素点,x多少行,y多少列
//r
data[(y*w+x)*4]= color[0];
//g
data[(y*w+x)*4+1]=color[1];
//b
data[(y*w+x)*4+2]= color[2];
//a
data[(y*w+x)*4+3]=color[3];
}
</script>
![]()