Reputation: 57
I'm writing CSS for project and need to convert pixel to centimeter with JavaScript. how do I calculate this conversion?
Upvotes: 3
Views: 13241
Reputation: 512
On modern devices it is sufficient to take into account the actual window.devicePixelRatio
:
function px2cm(px) {
var n = 0;
var cpi = 2.54; // centimeters per inch
var dpi = 96; // dots per inch
var ppd = window.devicePixelRatio; // pixels per dot
return (px * cpi / (dpi * ppd)).toFixed(n);
}
Upvotes: 0
Reputation: 61
You could use window.devicePixelRatio to check for device caps. It is used in most browsers.
Upvotes: 5
Reputation: 225
If you just want to convert the pixels to cm using javascript, you can use following formula:
1px = 0.026458 cm;
Please take care this is only for conversion of px to cm.
I am not aware if you are taking DPI
of screen into consideration.
Upvotes: 1
Reputation: 46
There are 2.54 centimeters per inch; if it is sufficient to assume 96 pixels per inch, the formula is rather simple:
centimeters = pixels * 2.54 / 96
There is a way to get the configured pixels per inch of your display for Microsoft Windows called GetDeviceCaps. Microsoft has a guide called "Developing DPI-Aware Applications", look for the section "Creating DPI-Aware Fonts".
Upvotes: 2