3
我正在写一个小图像编辑器来学习一些javascript。其中一个特点显然是一个绘图工具。当我用这些像素绘制到实际画布顶部的另一个画布上,然后释放鼠标时,我将顶部画布上的像素复制到底层画布上。在html画布之间复制pixeldata
这是用于将绘制的像素复制到底层画布的代码。
this.applySketch = function() {
this.revertStack.push(this.ctx.getImageData(0, 0, this.width, this.height));
var real = this.ctx.getImageData(0, 0, this.width, this.height);
var sketch = this.sketchctx.getImageData(0, 0, this.width, this.height);
for(var i = 0; i < sketch.data.length; i += 4) {
// check the alpha value to decide if to copy to the real canvas
if(sketch.data[i+3] > 0) {
real.data[i] = sketch.data[i];
real.data[i+1] = sketch.data[i+1];
real.data[i+2] = sketch.data[i+2];
real.data[i+3] = sketch.data[i+3];
}
}
this.ctx.putImageData(real, 0, 0);
this.sketchctx.clearRect(0, 0, this.width, this.height);
}
我遇到的问题是像素在复制到其他图层时看起来不一样。相反,无论我正在复制什么,都有一个白色像素的薄轮廓。
鼠标释放之前(在像素是在顶层) http://i.imgur.com/xHvN1iF.jpg
鼠标释放(当它们已被复制) http://i.imgur.com/P0sdybs.jpg
我真的没有什么任何线索后去这里,因为它看起来非常简单。它可以是什么抗锯齿?
感谢