19

Web ページを正確な単位数 (センチメートル/インチ) で表示するために、ユーザーのディスプレイの DPI をプログラムで決定したいと考えています。私はそれが奇妙な要求であることを知っています.それは視覚化研究プロジェクトのためであり、一種のコントロールです. 現在、ユーザーがクレジット カードを画面に配置し、(Mootools を介して) サイズ変更可能な div を実際のクレジット カードに一致させることで、DPI を取得してページを正しく表示することができます。

これを行うプログラム的な方法を考えられる人はいますか?

4

4 に答える 4

3

これを javascript/mootools で行っている場合は、CSS ユニットが役に立ちます。サイズは、インチまたはセンチメートル、またはポイント (1/72 インチ) で指定できます。これらの単位でサイズを指定できても、何らかの理由で DPI が絶対に必要な場合は、使用している「サイズ変更可能な」div のサイズを既知のサイズに変更し、変換されたピクセル サイズから計算するだけです。

編集:

残念ながら、ポイント、cm、およびインチの CSS 単位は物理的に正しくありません。それらは比較的正しいだけです。これは、機能していないことに気づき、CSS 仕様を確認するまで、私が最初に試したものでした..がっかりしました。ブランドン・ペルフリー

それは良い点です; ブラウザーは、デフォルトの DPI (私は 72 または 96 だと思います) を想定してそれを使用することで、それを偽造する傾向があります。

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

ブラウザが行うデフォルトの想定を行い、CSS 単位に従ってサイズを変更することをお勧めします。次に、前述の方法を使用してユーザーが「サイズを調整」できるようにすることができますが、必要な場合に限ります。ユーザー セッションの一部として、または Cookie として保存された DPI 計算を使用して、別のページでこれを行います。

または、Microsoftがこのバグを修正したら、Silverlight の「デバイスに依存しない単位」を使用して正確なスケーリングを行うことができます。

于 2009-06-01T18:05:23.843 に答える
2

できません。DPI は、画面のピクセル解像度とディスプレイの物理的な寸法の関数です。後者は、私が認識しているブラウザ インターフェイスでは利用できません。

于 2009-06-01T18:05:00.193 に答える
0

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

于 2009-06-01T18:06:38.070 に答える
0

ターゲット コンピューターでコードが実行されていない場合、ブラウザーからはできません。ターゲット コンピューターに何かをインストールできれば、これを計算するためにモニターについて十分に判断できる可能性があります。

于 2009-06-01T18:07:37.787 に答える