Почему бы не настроить часовой пояс на GMT для ваших сеансов R, тогда? Если что-то преобразуется в «текущий» часовой пояс, он по-прежнему прав.
Я решил свою проблему. Вот решение:
$('#crop').click(function () {
var zoom = canvas.getZoom()
let top = zoneY // Top position of area
let left = zoneX// Left position of area
zoneWidth /= zoom
zoneHeight /= zoom
canvas.clipPath = shapeRect; // fabric.Rect()
canvas.renderAll()
})
Вместо обрезки изображения я обрезал сам холст. И используя положение области для обрезки
Вот заключительная демонстрация: https://jsfiddle.net/58nvte7h/43/