2009-06-01 2 views
18

정확한 단위 수 (센티미터/인치)로 웹 페이지를 표시하기 위해 프로그래밍 방식으로 사용자 디스플레이의 DPI를 결정하고 싶습니다. 나는 그것이 이상한 요청임을 안다. 그것은 시각화 연구 프로젝트를위한 것이고 그것은 일종의 통제이다. 우리는 현재 사용자가 화면에 신용 카드를 놓고 크기를 조정할 수있는 div (Mootools를 통해)를 실제 신용 카드와 매치 시켜서 DPI를 얻고 페이지를 올바르게 표시 할 수 있습니다.브라우저를 통해 프로그래밍 방식으로 DPI를 결정 하시겠습니까?

누구든지 프로그래밍 방식으로이를 수행 할 수 있습니까?

+0

가능한 복제 [JS/CSS에서 시스템 DPI/PPI 감지? (http://stackoverflow.com/questions/279749/detecting-the-system-dpi-ppi-from -js-css) – Endless

답변

3

javascript/mootools에서 이것을 수행하는 경우 CSS units은 (는) 친구입니다. 인치 또는 센티미터, 또는 심지어 포인트 (1/72 인치)로 크기를 지정할 수 있습니다. 이러한 단위로 크기를 지정할 수 있지만 어떤 이유에서든 DPI가 절대적으로 필요한 경우, 알려진 크기로 사용중인 "크기 조정 가능"div의 크기를 지정하고 변환 된 픽셀 크기로 계산하면됩니다.

편집 :

불행하게도, 점, cm, 및에서의 CSS 단위는 물리적으로 올바르지 않습니다. 그들은 단지 상대적으로 입니다. 이것은 이 내가 깨닫지 않을 때까지 시도한 첫 번째 것이 었습니다. 이 작동하고 CSS 사양을 확인했습니다. 내 실망. - 브랜든 펠프리 좋은 지적입니다

; 브라우저는 기본 DPI (72 또는 96)를 가정하고이를 사용하여 가짜로 만드는 경향이 있습니다.

글쎄, 당신이 요구하는 것처럼 정밀한 사이징이 필요하다면, 당신은 운이 없다. 브라우저가있는 모니터의 현재 해상도와 해당 모니터의 "볼 수있는 화면 영역"을 모두 읽을 수 없으면 절대로 화면을 볼 수 없습니다. Javascript를 통해 얻을 수있는 방법이 없습니다.

브라우저가 CSS 단위에 따라 크기 및 크기를 지정한다는 기본 가정을 설정하는 것이 좋습니다. 그런 다음 사용자가 언급 한 방법을 사용하여 "크기 조정"을 허용 할 수 있지만, 필요한 경우에만 을 입력하십시오.. DPI 계산이 사용자 세션의 일부로 또는 쿠키로 저장된 별도의 페이지에서이 작업을 수행하십시오.

Microsoft가 this bug을 수정하고 나면 정확한 확장을 위해 Silverlight의 "장치 독립 장치"를 사용할 수 있습니다.

+1

불행히도 점, cm 및 in의 CSS 단위는 실제로 올바르지 않습니다. 그들은 상대적으로 정확합니다. 이것은 내가 작동하지 않고 CSS 사양을 확인하지 않을 때까지 제가 시도한 첫 번째 시도였습니다. 당황 스럽습니다. –

+1

CSS 단위 링크는 다음과 같습니다. http://www.w3schools.com/cssref/css_units.asp – Christian

+0

업데이트 됨, 감사합니다 .Christian – Randolpho

2

수 없습니다. DPI는 화면의 픽셀 해상도와 디스플레이의 물리적 치수의 함수입니다. 후자는 내가 알고있는 브라우저 인터페이스에서 사용할 수 없습니다.

0

정확한 결과를 얻지 못할 것이라고 생각합니다. 예를 들어 모니터를 사용하여 그림의 크기를 조정할 수 있습니다. 당신이 f.e 일 수 있지만, 나는 사용자 중심의 방법을 고집하고 싶습니다. 첫 번째 예상에 대한 화면 해상도를 감지합니다.

0

대상 컴퓨터에서 실행중인 코드가없는 브라우저에서는 불가능합니다. 대상 컴퓨터에 무언가를 설치할 수 있다면 이것을 계산하기 위해 모니터를 충분히 결정할 수 있습니다.