fabric.js: переместить обрезанное изображение за фиксированной обтравочной маской

Я работаю над небольшим сценарием, который позволяет пользователю загружать пользовательское изображение на холст на веб-странице. Пока это работает довольно аккуратно. Холст инициализируется с помощью сценария fabric.js, чтобы позволить пользователю легко выполнять некоторые задачи редактирования.

"Загруженное" изображение обрезается простым прямоугольником. Теперь самое сложное: пользователь должен иметь возможность перемещаться, масштабировать и поворачивать изображение, в то время как прямоугольник остается на месте; выбрав раздел изображения предпочтительнее. Однако даже

lockMovement = true;

или же

lockMovementX = true;    
lockMovementY = true;    

не держите эту обтравочную маску на месте. Есть ли другой способ добиться этого?

Любая помощь очень ценится! Пожалуйста, найдите демо здесь: http://jsfiddle.net/efmbrm4v/

1 ответ

У меня была такая же проблема, и я решил ее с помощью следующего кода:

image.clipTo = function (ctx) {
  ctx.save();

  ctx.setTransform(1, 0, 0, 1, 0, 0); // Reset transformation to default for canvas
  ctx.rect(
    100, 100, // Just x, y position starting from top left corner of canvas
    200, 200 // Width and height of clipping rect
  );

  ctx.restore();
};

Вы можете попробовать это здесь: http://jsfiddle.net/Jagi/efmbrm4v/1/

Другие вопросы по тегам