実行中のアプリケーションでGNOMEシンボリックアイコンが暗く表示されるのはなぜですか?


10

デフォルトのテーマのシンボリックアイコンを使用するアプリケーションを作成しています。

ただし、必要なアイコンがいくつかあり、デフォルトのテーマのアイコンでは表現できないため、独自のアイコンを作成しています。

私が行ったのは、単にに移動し/usr/share/icons/gnome/scalable/actions/、いくつかのローカルをアプリのソースツリーにローカルにコピーして、ベースとして使用できるようにし、それらの編集を開始することでした。

ここまでは順調ですね。ただし、次のことに気づきました。すべてのシンボリックアイコンは、元の.svgファイルを見ると薄い灰色ですが、ウィジェットに配置すると、暗くなります。

/usr/share/icons/gnome/scalable/actions/view-refresh-symbolic.svgデフォルトのテーマのアイコンを使用した例を次に示します。

  • Inkscapeでオリジナルを開くと、次のようになります。

Inkscapeのview-refresh-symbolic

  • 実行中のアプリケーションのツールバーでの表示は次のとおりです。

実行時のon-refresh-symbolic

実行時にアイコンがかなり暗くなることに注意してください。これは、AmbianceテーマとRadianceテーマの両方で発生します。

気にしませんが、カスタムアイコンに影響が出て、一部が暗く(内側の塗りつぶし)、一部がオリジナル(ストローク)と同じ色のままであることに気付きました。

では、デフォルトのシンボリックアイコンを暗くする原因は何ですか。また、カスタムアイコンにどのように実装する必要がありますか?


アプリケーションでアイコンをどのように正確にロードしていますか?
dobey

Gladeでは、「アイコン名からロード」設定を使用するツールバーボタン。
David Planella

次に、最も可能性の高い答えは、カスタムアイコンをまったく読み込まないことですが、スタック内のアイコンテーマから1つが読み込まれ、名前(またはフォールバック名)が一致します。
dobey

回答:


15
  • シンボリックアイコンは、クロマキーの色で作成され、灰色で完全に不透明になります(#bebebeff)。次にfg_colorsettings.ini(GTK3)またはgtkrc(GTK2)のテーマで定義された値に基づいて色を付けることができます。またはfg_colorCSS(GTK3)で定義されています。
    • たとえば、Ambianceの前景色(fg_colorはで濃い灰色(#4c4c4c)に設定され/usr/share/themes/Ambiance/gtk-3.0/settings.iniているため、シンボリックアイコンは暗く表示されます。
  • カスタムシンボリックアイコンの外観を同じにするには、ストローク削除し、RGBA値をに設定した塗りつぶしのみを使用する必要があり#bebebeffます。そうでない場合、ストロークは常にセットとして表示されます(つまり、灰色またはその他の色)。

    • Inkscapeでは、オブジェクトを選択し、塗りつぶしとストロークを開いて、[ ストロークペイント]の下の[ ペイントなし(x)]アイコンをクリックするだけです。

    ここに画像の説明を入力してください

  • これにより、見栄えがよく、見栄えのよい "MyRefresh"シンボリックアイコンが得られます。

    ここに画像の説明を入力してください


あるユーザーが、デフォルトのgnomeシンボリックアイコンの代わりに別の暗いアイコンが開かれていることを示しました。このトレースが示すように、そのアサーションは正しくありません:

ここに画像の説明を入力してください


すばらしい答えをありがとう!ただし、まだよくわからないことが1つあり#bebebeffます。塗りつぶされていても、カスタムシンボリックアイコンにストロークがないのはなぜですか。
David Planella

これは、Gnomeがfg_colorlibRSVGを使用する)の値に基づいてシンボリックSVGをレンダリング(ラスタライズ)する方法に関係していると思います。エンジンは塗りとストロークを明確に区別しfg_color、ストロークをそのままにして塗りのみに適用するようにコード化されているように見えます。SVGはベクトル化された(パラメーター化された)形式ですが、通常のビットマップアイコンではすべてピクセルのみなので、これを行うことができます:)
ish

3

シンボリックアイコンは通常、「color」プロパティを使用してテーマによって設定されます。これは、その大きな利点であり、どの背景でも見栄えがよくなります。ただし、独自の色で読み込むことができます。

valaコードの例:

//get the icon theme and lookup the icon we want by name, here at a size of 64px
var info = Gtk.IconTheme.get_default ().lookup_icon ("view-refresh-symbolic", 64, 0);

//now load the icon as a symbolic with a color set in the brackets as RGBA, here as plain red
var pixbuf = info.load_symbolic ({1, 0, 0, 1});

//finally we just put in a GtkImage to render it
var image_widget = new Gtk.Image.from_pixbuf (pixbuf);

実際、現在のテーマに合わせて適切な色に変更されていることは、シンボリックアイコンのほとんどの主な目的です(もう1つはよりシンプルで読みやすいことで、これも促進されます)
underscore_d
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.