2009-06-01 1 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のサイズを既知のサイズに単純に変換し、変換後のピクセルサイズから計算します。

編集:

残念ながら、 ポイント、センチ、および中のCSSユニットは、物理的に 正しくありません。彼らは正確には しかありません。これは私が ではなく、CSS仕様をチェックしていないことを認識するまで、私が を試した最初のことでした。 私の驚愕。 - 良い点だブランドンPelfrey

。ブラウザは、デフォルトのDPI(私は72または96と思う)を仮定し、それを実行することによってそれを偽造する傾向があります。

あなたが求めているような精密サイジングが必要な場合は、あなたは運がありません。ブラウザが現在持っているモニタの解像度と、そのモニタの「表示可能な画面領域」の両方を読み取ることができなければ、それを得ることはできません。あなたはJavascriptでそれを得るつもりはないですか?

私は、ブラウザがCSS単位で行い、サイズを決めるという既定の仮定をすることをお勧めします。前述の方法を使用してユーザーに「サイズ調整」を許可することができますが、必要な場合にのみを入力してください。これは、DPI計算がユーザーセッションの一部として、またはCookieとして保存されている別のページで行います。

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

私はあなたが正確な結果を得られないと思います。たとえば、モニターを使って画像のサイズを変更することができます。私はむしろユーザー主導の方法に固執したいと思います。最初の見積もりの​​画面解像度を検出します。

0

対象のコンピュータでコードを実行していないブラウザからは不可能です。ターゲット・コンピューターに何かをインストールすることができれば、これを計算するためにモニターについて十分に判断できるかもしれません。

関連する問題