예를 들어 문자열이 있습니다. "Hello world"및 글꼴 이름 (예 : "급사". 이 문자열을 나타내는 폴리선 배열을 가져와야합니다. 이 폴리선은 OpenGL 장면에서 렌더링됩니다.텍스트 문자열을 iOS에서 폴리 라인 세트로 변환하는 방법은 무엇입니까?
각 문자를 하나 이상의 2D 폴리 라인으로 변환해야한다는 뜻입니다.
나는이 아이폰 OS (목표 - C 또는 C++)
예를 들어 문자열이 있습니다. "Hello world"및 글꼴 이름 (예 : "급사". 이 문자열을 나타내는 폴리선 배열을 가져와야합니다. 이 폴리선은 OpenGL 장면에서 렌더링됩니다.텍스트 문자열을 iOS에서 폴리 라인 세트로 변환하는 방법은 무엇입니까?
각 문자를 하나 이상의 2D 폴리 라인으로 변환해야한다는 뜻입니다.
나는이 아이폰 OS (목표 - C 또는 C++)
당신은 텍스트와 코어 텍스트를 사용하여 글꼴의 경로를 얻을 수 있습니다에 어떻게해야합니까. CTFontCreatePathForGlyph
이라는 핵심 텍스트 메서드가 있는데, 주어진 심볼의 주어진 글리프에 대한 경로를 제공합니다. 이를 사용하여 모든 글리프의 경로를 얻을 수 있습니다.
this article about "low-level text rendering"을 살펴 봐야합니다. this article의 샘플 코드를보고 텍스트의 경로를 얻는 방법 (Core Animation을 사용하여 쓰는 방법)을 살펴볼 수도 있습니다.
FreeType library 글꼴 파일의 넓은 범위의 로딩을 지원 (폴리 라인이 포인트의 단지 목록입니다 동안 경로 호와 곡선을 포함 할 수 있기 때문에) 당신은 여전히 폴리 라인의 경로를 변환해야합니다 (트루 타입, 포스트 스크립트 등). FreeType 엔진은 글꼴을로드하고 비트 맵에 렌더링 할 수 있지만 자세한 글리프 정보를 반환 할 수도 있습니다.
FT_Outline_Decompose
함수를 사용하면 FT_Outline
을 사용하여 구성 선, 호 및 곡선으로 분해 할 수 있습니다. 윤곽 처리 중에 호출 될 struct FT_Outline_Funcs
구조체에 일련의 함수 포인터를 제공하기 만하면됩니다. 이 함수는 사용자에 의해 정의되므로 응용 프로그램에 가장 적합한 형식 (예 : 폴리 라인)으로 변환 할 수 있습니다.
이 API 참조 :
FT_Outline_Decompose()
주
유용한 정보는 FreeGL 사용법에 대한 이야기가 있지만 글꼴에 대한 OpenGL FAQ 중 하나에 게시되어 있습니다. 텍스처 아틀라스 기술은 가치가 독서 :
@David Rönnqvist의 대답은'CTFontCreatePathForGlyph'를 사용하는 것이 더 나은 대답입니다. 그래서 +1하십시오. 나는 CoreText에 대해 기억해야만했다! FreeType은 종종 OpenGL에서 글꼴을 지원하는 데 사용되며 다중 플랫폼 개발에 유용 할 수 있습니다. – gavinb
FWIW, iOS는 Apple 자체 코드를 사용하는 Mac OS X과 달리 장면 뒤에서 FreeType을 사용합니다. – alastair
@alastair 아주 흥미 롭습니다 - 나는 두 플랫폼에서 모두 같다고 생각했습니다.이 경우 기본 FreeType 지원에 직접 연결하는 것이 실용적인 대안입니다. – gavinb
이에 대한 준비 솔루션은 현재이되지 않습니다? CTFontCreatePathForGlyph에는 CGGlyph와 CTFontRef가 필요합니다. 어떻게'strin "Hello world"와 폰트 이름에서 가져올 수 있습니까? "Courier"' – Dmitriy
Ole Begemann의 기사에서 두 번째 비디오를 보면 그는 "hello world"라는 텍스트를 쓰고 있습니다. 그는 또한 [GitHub] (https://github.com/ole/Animated-Paths)에서이 작업을 수행하는 데 사용하는 코드를 게시했습니다 (게시물의 설명대로). 그가 어떻게 그곳에서 그것을하는지보십시오. –