2014-04-10 8 views
1

응용 프로그램에서 유니 코드 문자를 렌더링하고 싶습니다. freetype을 사용하여 표준 라틴 문자를 어떻게 처리 할 수 ​​있는지 대략적인 아이디어가 있습니다. 그러나 다른 레이아웃을 가지고 있고 나는에 UTF-8 인코딩 된 문자열에서 얻을 문자 집합에서 이동하는 방법을 잘 모르겠어요 형성 다른 언어 : 문자를 표시하기 위해 적절한 글꼴을 따기유니 코드 문자의 글꼴 및 레이아웃 정보를 어떻게 확인할 수 있습니까?

  1. 문자 (LTR, RTL, TTB)

에 적합한 레이아웃을 따기

  • 자신 (I는 웹 브라우저와 같은 다른 응용 프로그램이 방법을 알아낼 얼마나 확실하지 않다 유니 코드 문자에 포함 된이 데이터가 텍스트 렌더링)?

    주어진 유니 코드 문자의 경우 점 1과 점 2를 어떻게 결정할 수 있습니까? Freetype은 다른 레이아웃을 사용하는 데 대한 훌륭한 문서와 대화를 가지고 있지만 문자 자체에서 정보를 추출하는 방법을 알지 못했습니다.

    또한 Harfbuzz를 빠르게 살펴 보았지만 실제로 어떤 설명서도 찾을 수 없었습니다. 주변에 떠있는 예제가 있는데 Freetype을 사용하여 일부 언어를 배치하기 위해 하프 버즈를 설정하고 사용하는 방법을 보여 주지만이 예에서는 레이아웃, 글꼴 및 언어 정보를 Harfbuzz에 명시 적으로 전달합니다.

    사전에 이러한 사실을 모르는 경우 어떻게합니까?

    모바일 응용 프로그램 용이며 이상적으로 사용 된 libs/솔루션에는 허용 라이센스가있는 것이 이상적입니다.

  • 답변

    2

    유니 코드 문자 코드 포인트는 문자 만 인코딩합니다. 글꼴이나 사용법, 실제로는 다른 어떤 정보도 제공하지 않습니다. 레이아웃 등에 관한 정보 을 얻으려면 유니 코드는 , 즉 UnicodeData.txt과 같은 많은 파일을 다운로드하여 사용할 수 있습니다. 폰트의 경우 으로, 각 폰트는 문자의 너비, 높이, 깊이와 같은 종류의 설명자 파일을 제공해야합니다. 이 파일은 글꼴이 지원하는 문자 문자를 결정하는 데에도 사용할 수 있습니다.

    +0

    답장을 보내 주셔서 감사합니다. 누구나 약간의 통찰력을 제공 할 수 있다면 후속 질문입니다 : 응용 프로그램이 유니 코드 글꼴을 즉석에서 렌더링하는 일반적인 전략은 무엇입니까? 한 묶음의 글꼴을 쌓고, 각 글꼴이 지원하는 글꼴을 추적하여 사용할 글꼴을 찾습니다. 2. UnicodeData.txt의 문자열에서 char을 조회하여 레이아웃을 결정합니다. 3. freetype 및 글꼴 레이아웃을 사용합니다. harfbuzz -> render와 같은 엔진. – Prismatic

    +0

    @Pris 저는 이런 식으로 실제로 작업하지는 않았지만 어떤 글꼴이 사용 가능한지, 각 글꼴에서 지원되는 문자를 결정함으로써 응용 프로그램이 시작될 것이라고 생각합니다. 그런 다음 렌더링 컨텍스트에서 글꼴 목록을 순서대로 시도합니다 (예 : 사용자가 sans-serif를 요청하면 목록은 serif를 요청한 경우와 다를 것임). 각 문자에 대해 해당 문자를 지원하는 글꼴을 찾을 때까지 목록을 살펴보십시오. 그리고 아무 것도하지 않는 경우에 대한 기본 렌더링이 있습니다. –