在JS画布上手动分配像素颜色

时间:2014-03-26 12:57:18

标签: javascript html css html5-canvas

我是画布的新手,但我一直在玩fillRect()来填充某种颜色的像素。到目前为止,这已经很好用,但有时整个画布模糊,一个坚实的像素开始变成反锯齿。这通常是由调整窗口大小引起的。

是否可以手动为像素指定某种颜色?

1 个答案:

答案 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);
}