У меня есть приложение, в котором пользователи могут рисовать штрихи на холсте. Как сохранить вход, чтобы он был перекрашен после того, как я очистил холст, чтобы удалить, например, исправления, которые были добавлены. Я использовал массив, но на самом деле требуется много времени, чтобы перерисовать все записи массива.Canvas - Как сохранить ввод пользователя в объект?
моего код, чтобы понять, мазки выглядеть примерно так: 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);
Yo может сохранить его как изображение. затем восстановите изображение на поверхности холста. Решает ли ваша проблема? –
Не могли бы вы показать, что вы пытались allready хранить/отображать ввод пользователя? Какова ваша цель/уровень гибкости, который вы ожидаете? – GameAlchemist
@ Siamak.A.M но как бы там пиксели на холсте я не хочу. Пользователь помещает rects/etc на холст и штрихи, но я хочу только сохранить штрихи. – daisy