diff --git a/dist/image-editor.js b/dist/image-editor.js index 98e9430..46d4feb 100644 --- a/dist/image-editor.js +++ b/dist/image-editor.js @@ -1482,12 +1482,19 @@ function RulerHandler(viewport) { var bounds = viewport.getBounds(); var pos = util.assertBetween(ruler[axis], bounds.min[axis], bounds.max[axis]); ruler.marker[axis] = ruler[axis] = pos; - var dim = (ruler[axis] - bounds[axis]) / (viewport.getData().ppmm * 10 * viewport.canvas.getImage().scaleX); + var posWithinBounds = ruler[axis] - bounds[axis]; + var viewportData = viewport.getData(); + var imageData = viewport.canvas.getImage(); + var pixelsPerCm = viewportData.ppmm * 10 * imageData.scaleX; + var dim = posWithinBounds / pixelsPerCm; + var units = viewportData.dim.units; + if (units === 'inch') { + dim /= 2.54; + } if (axis === 'top') { - dim = viewport.getData().dim.height - dim; + dim = viewportData.dim.height - dim; } - var units = viewport.getData().dim.units; var value = Math.round(dim * 100) / 100; if(units === 'cm') { value = Math.round(value); diff --git a/src/RulerHandler.js b/src/RulerHandler.js index 31183dc..9a797ec 100644 --- a/src/RulerHandler.js +++ b/src/RulerHandler.js @@ -15,12 +15,19 @@ function RulerHandler(viewport) { var bounds = viewport.getBounds(); var pos = util.assertBetween(ruler[axis], bounds.min[axis], bounds.max[axis]); ruler.marker[axis] = ruler[axis] = pos; - var dim = (ruler[axis] - bounds[axis]) / (viewport.getData().ppmm * 10 * viewport.canvas.getImage().scaleX); + var posWithinBounds = ruler[axis] - bounds[axis]; + var viewportData = viewport.getData(); + var imageData = viewport.canvas.getImage(); + var pixelsPerCm = viewportData.ppmm * 10 * imageData.scaleX; + var dim = posWithinBounds / pixelsPerCm; + var units = viewportData.dim.units; + if (units === 'inch') { + dim /= 2.54; + } if (axis === 'top') { - dim = viewport.getData().dim.height - dim; + dim = viewportData.dim.height - dim; } - var units = viewport.getData().dim.units; var value = Math.round(dim * 100) / 100; if(units === 'cm') { value = Math.round(value);