실행중인 응용 프로그램에서 그놈 기호 아이콘이 어둡게 나타나는 이유는 무엇입니까?


10

기본 테마에서 기호 아이콘을 사용하는 응용 프로그램을 만들고 있습니다.

그러나 기본 테마의 아이콘으로 나타낼 수없는 몇 가지 아이콘이 있으므로 내 아이콘을 만들고 있습니다.

내가 한 것은 단순히로 이동하여 /usr/share/icons/gnome/scalable/actions/기본으로 사용할 수있는 앱의 소스 트리에 로컬로 몇 가지를 복사하고 편집하기 시작하는 것이 었습니다.

여태까지는 그런대로 잘됐다. 그러나 나는 다음을 발견했다 : 원본 .svg 파일을 볼 때 모든 상징적 인 아이콘은 밝은 회색 색상이지만 위젯에 배치하면 어두워집니다.

/usr/share/icons/gnome/scalable/actions/view-refresh-symbolic.svg기본 테마 의 아이콘을 사용하는 예는 다음과 같습니다 .

  • Inkscape로 원본을 열 때의 모습은 다음과 같습니다.

Inkscape의보기 새로 고침 기호

  • 실행중인 응용 프로그램의 도구 모음에 다음과 같은 모양이 있습니다.

런타임시 view-refresh-symbolic

런타임에 아이콘이 훨씬 어둡게 나타납니다. Ambiance와 Radiance 테마에서 모두 발생합니다.

나는별로 신경 쓰지 않지만 사용자 정의 아이콘에 영향을 미치므로 일부는 어둡게 (내부 채우기)되는 반면 일부는 원본 (획)과 동일한 색상으로 유지됩니다.

기본 기호 아이콘이 어두워지는 이유는 무엇이며 사용자 정의 아이콘에 어떻게 구현해야합니까?


응용 프로그램에서 아이콘을 어떻게 정확하게로드합니까?
dobey

Glade에서는 '아이콘 이름에서로드'설정을 사용하는 도구 모음 버튼에 있습니다.
David Planella 2016 년

그런 다음 가장 가능성이 높은 답변은 사용자 정의 아이콘을 전혀로드하지 않고 스택의 아이콘 테마에서 일치하는 이름 (또는 대체 이름)을 갖는 아이콘입니다.
dobey

답변:


15
  • 기호 아이콘은 전체 불투명도 ( )를 가진 회색 크로마 키 색상 으로 만들어 #bebebeff집니다. 그런 다음 (GTK3) 또는 (GTK2) fg_color의 테마로 정의 된 값을 기반으로 색상을 지정할 수 있습니다 . 또는 CSS (GTK3)에 정의되어 있습니다. settings.inigtkrcfg_color
    • 예를 들어 분위기의 경우 전경색 ( fg_color)이 짙은 회색 ( #4c4c4c)으로 설정되어 /usr/share/themes/Ambiance/gtk-3.0/settings.ini기호 아이콘이 더 어둡게 나타납니다.
  • 사용자 정의 기호 아이콘을 동일하게 표시 하려면 획을 제거 하고 RGBA 값이 #bebebeff; 그렇지 않으면 획이 항상 설정된대로 나타납니다 (예 : 회색 또는 다른 색상).

    • Inkscape에서 오브젝트를 선택하고 채우기 및 획을 연 다음 "스트로크 페인트"아래의 페인트 없음 (x) 아이콘을 클릭하십시오 .

    여기에 이미지 설명을 입력하십시오

  • 이렇게하면 멋지고 균등 한 "MyRefresh"기호 아이콘이 나타납니다.

    여기에 이미지 설명을 입력하십시오


한 사용자가 기본 그놈 기호 아이콘 대신 다른 더 어두운 아이콘을 열고 있음을 나타 냈습니다. 이 strace에서 알 수 있듯이 어설 션이 잘못되었습니다.

여기에 이미지 설명을 입력하십시오


훌륭한 답변에 감사드립니다! 그러나 여전히 이해하지 못하는 한 가지가 있습니다. 왜 사용자 정의 기호 아이콘이 채워져도 스트로크를 가질 수 #bebebeff없습니까?
David Planella 2016 년

Gnome이 fg_color( libRSVG 사용 ) 값에 따라 기호 SVG를 렌더링 (래스터 화)하는 방법과 관련이 있다고 생각합니다 . 엔진은 분명히 채우기와 스트로크를 구분 fg_color하며 스트로크를 그대로두고 채우기에만 적용되도록 코딩 된 것으로 보입니다 . SVG는 벡터화 된 (매개 변수화 된) 형식이므로 일반적인 비트 맵 아이콘의 경우 모두 픽셀입니다.)
ish

3

상징적 인 아이콘은 일반적으로 "color"속성을 사용하여 테마에 의해 설정되며, 이는 큰 장점이며 어떤 배경에서도 잘 보입니다. 그러나 원하는 색상으로로드 할 수 있습니다.

발라 코드 예 :

//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);

현재 테마에 실제로 recoloured되고 적절한는 상징적 인 아이콘 (다른 존재가도 촉진하는, 간단하고 읽을 수 있어야합니다)의 거의 주된 목적이다
underscore_d
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.