我是画布的新手,但我一直在玩fillRect()
来填充某种颜色的像素。到目前为止,这已经很好用,但有时整个画布模糊,一个坚实的像素开始变成反锯齿。这通常是由调整窗口大小引起的。
是否可以手动为像素指定某种颜色?
答案 0 :(得分:1)
是否可以手动为像素指定某种颜色?
以下显示了另一种直接访问画布中像素的方法
假设已经分配了画布及其上下文
和像素颜色已分配,例如
p=new Pixel(35,56,78,0)
setPixel(5,10,p);
function Pixel(r,g,b,a) {
this.red=r;
this.green=g;
this.blue=b;
this.alpha=a;
}
function getPixel(x,y) {
var imdata=context.getImageData(0,0,canvas.width,canvas.height);
var column=4*(y*canvas.width+x);
var pix=new Pixel();
pix.red=imdata.data[column++];
pix.green=imdata.data[column++];
pix.blue=imdata.data[column++];
pix.alpha=imdata.data[column];
return pix;
}
function setPixel(x,y,pix) {
var imdata=context.getImageData(0,0,canvas.width,canvas.height);
var column=4*(y*canvas.width+x);
imdata.data[column++]=pix.red;
imdata.data[column++]=pix.green;
imdata.data[column++]=pix.blue;
imdata.data[column]=pix.alpha;
context.putImageData(imdata,0,0);
}