我有一個應用程序,用戶可以在畫布上繪製筆觸。我怎樣才能保存輸入,以便在我清除畫布以清除例如已添加的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