問題タブ [dpi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
19 に答える
329802 参照

android - Androidでプログラムで画面密度を取得しますか?

Androidでプログラムで画面密度を取得するには?

つまり、現在のデバイスの画面 dpi を見つける方法は?

0 投票する
2 に答える
1473 参照

wxpython - wxPythonを使用して画面のDPIを取得するにはどうすればよいですか?

で画面解像度を取得できます

しかし、DPIを取得する方法がわかりません。

0 投票する
2 に答える
555 参照

jquery - 画面よりも高いDPIでキャンバスオブジェクトを作成しますか?

ネイティブの画面解像度よりも高い解像度で作成できるようにする必要があるキャンバスオブジェクトがあります。Flotグラフライブラリを使用しているので、印刷したときと画面に表示したときと同じように見えるグラフを出力する必要があります。

私が考えることができる唯一の方法は、キャンバスのサイズを3倍に大きくしてから拡大縮小することですが、印刷するときにそれが適切に機能するとは思いません。

何か案は?

0 投票する
0 に答える
166 参照

android - サムネイルとして表示される画像の DPI を検索候補ビューに通知するにはどうすればよいですか?

Android 検索と自動検索提案機能を使用するアクティビティがあります。

私がアクティビティで使用しているサムネイルはすべて SD カードに保存され (たくさんあります)、すべて MDPI 解像度です。

アクティビティでそれらを使用する場合、これを考慮して適切にスケーリングできるため問題ありませんが、検索候補ビューでは、サムネイルが現在の DPI であると想定されているように見えるため、HDPI デバイスではサムネイルが小さく見えます。

カスタムを使用して検索候補ビューのサムネイルを取得し、メソッドContentProviderをオーバーライドしてopenFileいますが、ジェネリックを返すだけなので、DPI の設定を制御する方法がわかりませんParcelFileDescriptor

を使用しParcelFileDescriptorて、検索候補ビューに DPI を通知することはできますか? または別の可能な方法はありますか?Android フレームワークが自動提案ビューへのデータのマッピングを処理するため、自分で直接制御することはできません。

私のopenFile方法は次のようになります。

これは、自動提案マネージャーがファイルを要求してから表示されるまでの間、ファイルを制御できる唯一の場所のようです。

0 投票する
4 に答える
45583 参照

wpf - WPF サイズを物理ピクセルに変換するにはどうすればよいですか?

WPF (解像度に依存しない) の幅と高さを物理的な画面ピクセルに変換する最良の方法は何ですか?

(ElementHost を介して) WinForms フォームに WPF コンテンツを表示し、いくつかのサイズ変更ロジックを解決しようとしています。OSがデフォルトの96 dpiで実行されている場合、問題なく動作しています。ただし、OS が 120 dpi またはその他の解像度に設定されている場合は機能しません。これは、Width を 96 として報告する WPF 要素は、WinForms に関する限り、実際には 120 ピクセル幅になるためです。

System.Windows.SystemParameters に「1 インチあたりのピクセル数」の設定が見つかりませんでした。私はWinFormsの同等物(System.Windows.Forms.SystemInformation)を使用できると確信していますが、これを行うためのより良い方法はありますか(WinForms APIを使用して手動で計算するのではなく、WPF APIを使用する方法を読んでください)?WPFの「ピクセル」を実際の画面ピクセルに変換する「最良の方法」は何ですか?

編集:WPFコントロールが画面に表示される前に、これを行うことも検討しています。Visual.PointToScreen を作成して正しい答えを得ることができるように見えますが、コントロールがまだ親になっておらず、InvalidOperationException "This Visual is not connected to a PresentationSource" が発生するため、使用できません。

0 投票する
2 に答える
593 参照

android - hdpiアセットが読み込まれなくなりました

高密度デバイスでの表示を改善するために、ゲームのグラフィックを拡大しているところです。より高いdpiのアートワークを作成し、正しい場所(res / layout / drawable-hdpi)に追加しました。マニフェストに以下を追加しました。

そしてそれは美しく機能しました...私がアップスケールするのを忘れて、drawable-mdpiから引っ張られていた1つの画像を除いて。その画像をアップスケールし、drawable-hdpiにドロップして、再起動しました。現在、ゲームはmdpiから画像を取得するだけです。

コードベースが機能していたためにコードベースに加えた変更は、新しいイメージファイルの追加だけであることをgitで確認できます。トラブルシューティングの目的で、追加されたイメージを削除することと、gitリポジトリを機能したときの状態にリセットすることの両方を試みました。どちらの場合も、それでも常にmdpiからロードされます。これは、エミュレーターの問題である可能性があると私に信じさせます。私はこれをネットブックの車で開発していますが、エミュレーターで問題が発生することがあります(通常、起動に1時間ほどかかり、Atomでの実行が非常に遅くなります)。

ゲームがhdpiからプルするのを何が止めているのかについて誰かが考えていますか?

編集

多くのトラブルシューティングを行った後でも、私はまだこれを解決することに近づいていません。私のアプリは互換モードで実行されているようです。「切手」サイズではなく、wvga800画面全体を使用しています。ただし、getDisplayMetrics()。densityは1.0を返します。エミュレーターは、高(240)dpiに設定されていると述べているので、密度は1.0より大きいはずだと思います。

ランダムデータポイント:drawable-hdpiディレクトリをdrawable-largeに変更すると、より大きな画像が読み込まれます。その場合、getDisplayMetrics()。densityはまだ1.0なので、適切なpx->dp変換を行うことができません。

0 投票する
1 に答える
3145 参照

.net - PrintDocument_PrintPage & Graphics.DrawImage サイズ (インチ)

サイズが 2x2 インチの画像を印刷しようとしています。解像度に基づいた変換関数 (インチからピクセルへ) を作成しました。ただし、結果は 2x2 インチにはほど遠いもので、印刷するとシート全体にかろうじて収まるイメージが生成されます。私は何か間違ったことをしていますか?

0 投票する
1 に答える
3171 参照

c++ - Windows DPI 設定をプログラムで決定しますか?

dpi 非対応の MFC アプリケーションの 1 つに問題があります。
システム設定を高 dpi (120 または 144 dpi など) に変更すると、タスクバーのアプリケーション アイコンがめちゃくちゃに見えます。WNDCLASS残念ながら、メインフレーム用に独自に登録する必要があり、WNDCLASS.hIconメンバーにアイコンを設定する必要があります。このアイコンはLoadIcon関数を使用してロードされます。GetSystemMetrics(SM_CXICON)そして、その関数は、120dpi の場合は 40x40 ピクセルである標準サイズ ( によって返されるものと同じ) で画像をロードしようとします。そのサイズのアイコンを提供していないため、残念です。しかし、これには回避策があります: 不思議なことに、dpi 仮想化は 120 dpi に対して有効ではないように見えますが、GetDeviceCaps(..., LOGPIXELSX)実際には 120 dpi を返し、GetSystemMetrics(SM_CXICON)40 を返します。これをキャッチして、アイコンを別のサイズでロードするだけです。しかし、144 dpi では機能しません。仮想化が有効になっているように見え、96 dpi と 32 ピクセルが得られるため、アイコンが非常に見苦しくなります。メンバーをに設定すると、アイコンが正常に表示さ
れることがわかりました。しかし、MSDNによると:WNDCLASS.hIconNULL

hIcon
クラス アイコンへのハンドル。このメンバーは、アイコン リソースへのハンドルである必要があります。このメンバーが NULL の場合、システムはデフォルトのアイコンを提供します。

では、そのメンバーを NULL に設定しても、アイコンが常に表示されると期待できますか? もう1つの方法は、アイコンを正しいサイズでロードすることですが、そのためには、システムが実際に144 dpiに設定されていることを知る必要があります. ここまでが私の最初の質問です。システムの DPI 設定を (dpi 仮想化アプリケーション内から) 判別できるかどうかを知っている人はいますか? dpi 対応のアプリケーションに実際の dpi などを教えてもらうなど、汚いことをすることも考えましたが、可能であればそのようなことは避けたいと思います。

よろしくお願いします、

フンバガンバ

更新:メインフレームのアイコンがデフォルトのアイコンに置き換えられるため、メンバーをに
設定することは良い考えではないことがわかりました(タスクバーでは問題なく見えますが...) - 私はその間に気づきませんでした私の最初のテスト。WNDCLASS.hIconNULL

0 投票する
1 に答える
2319 参照

user-interface - Win32:高DPIの下のダイアログボックスにストックアイコンを表示する

標準の情報アイコンを表示する必要があるダイアログボックスがあります。これが私のRCコードです:

WM_INITDIALOGメッセージを次のように処理します。

すべてが96DPIで正常に機能します。静的コントロールは、32x32ピクセルのアイコンを表示します。

ただし、より高いDPIに切り替えると(デスクトップを右クリックして[画面の解像度]を選択し、[作成]またはその他のアイテムを拡大または縮小することで)、アイコンが拡大縮小されません。他のすべてがうまく拡大縮小されるため、アイコンは隣接するテキストよりも視覚的にはるかに小さく見えます。144 DPI(150%)では、アイコンのサイズは48x48ピクセルになると思います。XMLマニフェストを使用して、アプリケーションをDPI対応として宣言しました。

最も気の毒なことは、私が自分のカスタムメイドのアイコン(これもRCファイルからのもの)を使用すると、すべてが完全にスケーリングされることです。さらに、フラグを使用しMessageBoxて呼び出された関数は、アイコンの拡大縮小バージョンも表示します。MB_ICONINFORMATION

これらの考えを踏まえて、私は次のことを想定しています。

  1. スタイル付きの静的コントロールは、SS_ICON拡大縮小されたバージョンのアイコンを表示できます。
  2. 標準の情報アイコンを含むアイコンリソースには、拡大縮小されたバージョンのアイコン(48x48)があります。

それでは私は何を間違っているのですか?

0 投票する
1 に答える
784 参照

windows - 使用されているフォントスケーリングモードを検出する方法は?

Windows 7 の「カスタム DPI 設定」ウィンドウに、「Windows XP スタイルの DPI スケーリングを使用する」という設定があります。この設定が使用されているかどうかを検出する方法を知っている人はいますか?