我有一个应用程序,用户可以在画布上绘制笔触。我怎样才能保存输入,以便在我清除画布以清除例如已添加的Rects之后重新绘制输入。我使用了一个数组,但它需要很长时间才能重新绘制所有数组条目。画布 - 如何保存用户输入的对象?
我的代码,实现招类似于此:http://jsfiddle.net/FgNQk/1/
var points[];
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
var width = window.innerWidth;
var height = window.innerHeight;
canvas.height = height;
canvas.width = width;
canvas.addEventListener('mousedown', function(e) {
this.down = true;
this.X = e.pageX ;
this.Y = e.pageY ;
this.color = rgb();
}, 0);
canvas.addEventListener('mouseup', function() {
this.down = false;
}, 0);
canvas.addEventListener('mousemove', function(e) {
if(this.down) {
with(ctx) {
beginPath();
moveTo(this.X, this.Y);
lineTo(e.pageX , e.pageY);
strokeStyle = "rgb(0,0,0)";
ctx.lineWidth=1;
stroke();
// saving via array
if (this.down) {
points.push({x:e.pageX,y:e.pageY});
}
}
this.X = e.pageX ;
this.Y = e.pageY ;
}
}, 0);
哟可以将它保存为图像。然后将图像恢复到您的画布表面。它能解决你的问题吗? – 2013-05-12 09:58:10
您能否显示您尝试使用的allready来存储/显示用户输入?你期望的目标/灵活程度如何? – GameAlchemist 2013-05-12 10:08:14
@ Siamak.A.M,但如果画布上有像素,我不想要。用户将rects/etc放在画布和笔画上,但我只想保存笔画 – daisy 2013-05-12 10:10:37