저는 방금 Linux에서 글꼴이 어떻게 작동하는지 연구하기 시작했습니다. 지금까지 나는 Linux 글꼴 시스템이 다음으로 구성되어 있다는 것을 알고 있습니다.
- FreeType은 벡터 기반 텍스트를 비트맵 기반 텍스트로 래스터화하기 위한 래스터라이저입니다.
- 운영 체제 내에서 글꼴을 관리하고 위치를 지정하기 위한 라이브러리인 Fontconfig입니다.
- Xft는 X Windows 시스템 등에서 원하는 출력을 표시하는 데 사용됩니다.
(틀렸다면 정정해주세요.)
이 세 가지 사이에 직접적인 관계가 있습니까? 워크플로우는 무엇입니까? 그리고 어떤 상황에서 이러한 시스템 라이브러리가 호출됩니까?
답변1
이들의 관계는 다음과 같습니다(사용됨 ldd
).
Xft
fontconfig
(무엇보다도) 라이브러리와 라이브러리 에 의존하는 라이브러리입니다freetype
.fontconfig
프로그램, 라이브러리, 데이터의 집합입니다. 해당 라이브러리는 라이브러리에 의존합니다freetype
.freetype
다른 두 라이브러리에 의존하지 않는 라이브러리입니다.
예를 들어:
$ ldd /usr/lib/x86_64-linux-gnu/libXft.so.2.3.1
linux-vdso.so.1 => (0x00007fffb3df7000)
libfontconfig.so.1 => /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007f40ea07a000)
libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f40e9ddb000)
libXrender.so.1 => /usr/lib/x86_64-linux-gnu/libXrender.so.1 (0x00007f40e9bd1000)
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f40e9896000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f40e9509000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f40e92f2000)
libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f40e90c8000)
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f40e8ea8000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f40e8ca4000)
/lib64/ld-linux-x86-64.so.2 (0x00007f40ea4c6000)
libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f40e8aa1000)
libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f40e889c000)
일부 응용 프로그램(예: xterm
) Xft
은 MIT 라이센스를 사용하는 를 사용합니다. libpango
라이센스 문제 외에 다른 사람의 사용(일반적으로 GPL 라이센스) .팡고, 해당 라이브러리 종속성은 두 배나 높습니다 Xft
.
fontconfig
사용된 기호를 확인하세요 Xft
.
FcCharSetCopy
FcCharSetCount
FcCharSetDestroy
FcCharSetHasChar
FcConfigGetBlanks
FcConfigSubstitute
FcDefaultSubstitute
FcFontList
FcFontMatch
FcFreeTypeCharIndex
FcFreeTypeCharSet
FcInit
...
FcPatternPrint
FcPatternVaBuild
FcStrCmpIgnoreCase
FcUtf16ToUcs4
FcUtf8ToUcs4
그리고 다음에서 freetype
:
FT_Done_Face
FT_GlyphSlot_Embolden
FT_Init_FreeType
FT_Library_SetLcdFilter
FT_Load_Glyph
FT_New_Face
FT_Render_Glyph
FT_Set_Char_Size
FT_Set_Transform
FT_Vector_Transform
Xft
위치 지정 에 사용된 글꼴을 fontconfig
기준으로 볼 수 있습니다 .무늬이지만 freetype
실제로는 다음 용도로 사용됩니다.짐,전시하다또는조정(줌 등) 글꼴.
fontconfig
freetype
글꼴에 대한 정보(전체 크기, 글리프 수 등)를 얻으 려면 다양한 호출을 사용하십시오 .
FT_Done_Face
FT_Done_FreeType
FT_Get_BDF_Property
FT_Get_Char_Index
FT_Get_First_Char
FT_Get_Glyph_Name
FT_Get_Next_Char
FT_Get_PS_Font_Info
FT_Get_Sfnt_Name
FT_Get_Sfnt_Name_Count
FT_Get_Sfnt_Table
FT_Get_X11_Font_Format
FT_Has_PS_Glyph_Names
FT_Init_FreeType
FT_Load_Glyph
FT_Load_Sfnt_Table
FT_New_Face
FT_Select_Charmap
FT_Select_Size
아니요 freetype
, fontconfig
정보 없음:fontconfig
정리하다유익하지만 불완전함원천정보 그 자체.