問題タブ [highdpi]

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 投票する
2 に答える
2056 参照

qt - SVG の QIcon が黒く表示される

Qt 5.9.1 アプリケーションで高 DPI ディスプレイをサポートする必要があり、アプリで使用される QIcons をスケーリングするソリューションを探しています。

現在、Windows 7 と 10 のみをターゲットにしています。

これまでのところ、非高 DPI ディスプレイ (Windows 7) では、さまざまな解像度で表示されるアイコンに .ico ファイルを使用しました。

単一の解像度でのみ使用される場合、いくつかのアイコンを .png ファイルとして取得することもできます。

高 DPI ディスプレイでは、Windows 10 で、ユーザーがアプリをスケーリングするズーム係数を適用すると、アイコンは最終的にスケーリングされますが、ぼやけます。

「@2x」サフィックスが付いた高解像度の png ファイルを追加してテストしましたが、スケーリングによってアイコンがぼやけます。

これを見て、代わりに.svgファイルを使用してみようと思いました.svgファイルはスケーリングする必要がありますが、QIconsで使用すると黒く表示されます. この投稿は、「塗りつぶし」の色が QIcons でサポートされていないことを意味します: Qt は、QIcon で SVG を着色するためのサポート

QIcons で動作するように .svg ファイルを取得できた人はいますか? 高 DPI ディスプレイをサポートし、鮮明なアイコンを取得するために、.svg を使用して正しい軌道に乗っていますか? そうでない場合、人々はどのようなアプローチをとっていますか?

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

c# - C# を使用して macOS で高 dpi コンソール アプリケーションを作成する方法 (可能な場合)?

フラクタルを構築する単純な c# コンソール アプリケーションがあります。macOS で Visual Studio Community を使用しています。特定のサイズ (wxh) のビットマップを作成します。.SetPixel計算されたマンデルブロ数に基づいて、ピクセルごとに色が割り当てられます。

高 dpi の Retina 画面を使用していて、ビットマップが非常にピクセル化されていることを除いて、これは正常に機能します。

私は次のようなことを試しました:

dpi を取得しますが、これは画面ではなく の解像度である 96 にFormなります。

bm.SetResolution(144.0F, 144.0F);ビットマップを作成した直後に試しましたが、成功しませんでした。

hereのようなより複雑なアプローチを試みましたが、プログラムがクラッシュするだけです。おそらく(?)私はmacosを使用しているため、.dllのようなロードを提案するすべてのソリューションが機能しませ[DllImport("user32.dll")]System.DllNotFoundException: user32.dll

this.AutoScaleDimensions = new System.Drawing.SizeF(200F, 200F);を初期化するメソッドに追加してみましたForm

WPFに切り替えることでさえも、macOS で可能な場合でも問題があるようです。C# を使用してそれが可能かどうか疑問に思っていますか?

プログラム全体を Retina dpi 用にレンダリングする必要はありませんが、ピクセルごとにビットマップを作成するには、おそらく高解像度の画像を取得するための別のアプローチが必要ですか? ビットマップを単純に小さくすることは許容されますが、解像度は高くなります。もちろん、最もForm優れた解決策は、アプリケーション全体を次のように書き直すことなく、画面で使用可能な dpi に基づいて、高 dpi 解像度で数行のコードを使用して完全なアプリケーションを作成することです。

.NET のドキュメントは本当に役に立たないので、誰かが解決策を持っていることを願っています。

PS: 投稿に反対票を投じるだけでなく、投稿に対する批判を聞きたいと思います。重複ですか?何時間も探し続けてきた答えがどこにあるのかと聞いて嬉しく思います。もっとコードが必要ですか?喜んで提供します...