javascript获取dpi及实现像素px与毫米mm的转换

697人浏览 / 0人评论

javascript获取dpi及实现像素px与毫米mm的转换

关于理论性的东西,这里就不多说了。如果要了解相关理论性的知识,请移步:网页打印与标准纸张换算 px与cm换算。这里直接上代码。

完整代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>dpi</title>
</head>
<body>

<script>
    function unitConversion() {
        /**
         * 获取DPI
         * @returns {Array}
         */
        this.conversion_getDPI =function () {
            var arrDPI = new Array;
            if (window.screen.deviceXDPI) {
                arrDPI[0] = window.screen.deviceXDPI;
                arrDPI[1] = window.screen.deviceYDPI;
            } else {
                var tmpNode = document.createElement("DIV");
                tmpNode.style.cssText = "width:1in;height:1in;position:absolute;left:0px;top:0px;z-index:99;visibility:hidden";
                document.body.appendChild(tmpNode);
                arrDPI[0] = parseInt(tmpNode.offsetWidth);
                arrDPI[1] = parseInt(tmpNode.offsetHeight);
                tmpNode.parentNode.removeChild(tmpNode);
            }

            console.log(JSON.stringify(arrDPI))
            return arrDPI;
        };
        /**
         * px转换为mm
         * @param value
         * @returns {number}
         */
        this.pxConversionMm = function (value) {
            var inch = value/this.conversion_getDPI()[0];
            var c_value = inch * 25.4;
//      console.log(c_value);
            return c_value;
        };
        /**
         * mm转换为px
         * @param value
         * @returns {number}
         */
        this.mmConversionPx = function (value) {
            var inch = value/25.4;
            var c_value = inch*this.conversion_getDPI()[0];
//      console.log(c_value);
            return c_value;
        }
    }

    //调用直接
    var mm1 = new unitConversion().pxConversionMm(140);
    var mm2 = new unitConversion().pxConversionMm(20);
    console.log(mm1);
    console.log(mm2);
    //        new unitConversion().mmConversionPx (毫米)
</script>
</body>
</html>

打开浏览器调试工具,刷新。便可以在控制台看到计算后的值。

全部评论