Laurie R. Horton
Laurie R. Horton

Reputation: 57

How to convert pixels to cm in JavaScript

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

Answers (4)

Muttley
Muttley

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

Bee
Bee

Reputation: 61

You could use window.devicePixelRatio to check for device caps. It is used in most browsers.

Upvotes: 5

jmsds
jmsds

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

Json
Json

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".

sample code

Upvotes: 2

Related Questions