javascript - 如何从JS中的图像获取DPI?

标签 javascript html html5-canvas

我在HTML5画布上工作,以计算两点之间的图像距离。我想将此距离转换为厘米。我发现一个公式:像素* 2.54 / DPI。所以,我想知道是否有可能在JS中获得DPI图像属性?或者,我可以使用最简单的方法从像素计算厘米吗?

谢谢。

最佳答案

您可以使用JavaScript从图像中获取cms的大小。请注意,每台设备的DPI都不同,因此,我使用window.devicePixelRatio获取显示图像的屏幕的DPI(可以是笔记本,手机,平板电脑等)。

一种方法是:

/* Convert px to cm */
function getSizeInCM(sizeInPX) {
   return sizeInPX * 2.54 / (96 * window.devicePixelRatio)
};

/* get width and height of an image in cms */
var img = document.getElementById('IMAGE_ID'),
var width = getSizeInCM(img.clientWidth),
var height = getSizeInCM(img.clientHeight);




如果只想获取一张图像的像素,则更为简单:

var imageWidth = document.getElementById("IMAGE_ID").width;
var imageHeigth = document.getElementById("IMAGE_ID").height;

// or...

var imageWidth = document.getElementById("IMAGE_ID").clientWidth;
var imageHeigth = document.getElementById("IMAGE_ID").clientHeight;




这样做的另一种方法:您将需要一个额外的库:Blueimp's Load Image library并使用其EXIF parsing extension

这是返回其坐标分辨率的代码:

loadImage.parseMetaData(FILE, function(meta) {
    if (!meta.exif) { return; }

    var resX = meta.exif.get('XResolution');
    var resY = meta.exif.get('YResolution');
});

关于javascript - 如何从JS中的图像获取DPI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54430842/

相关文章:

javascript - 子 ASP.net 页面关闭后刷新父 CRM 页面

javascript - 我怎么知道我使用的是哪个版本的 Javascript?

javascript - 无法计算元素的大小

javascript - .click 函数不适用于使用 .fadeIn 加载到 div 中的内容

javascript - Canvas 没有画任何东西?

javascript - 将外部 div 与内部 div 一起切换

javascript - 没有 sort() 的组合算法

Javascript(mouseover mouseleave)html元素不返回

javascript - 为什么点击时 Canvas 框的移动会增加?

html - 无法使用 Firefox 在 Canvas 上画线