Freetype 2 не удается открыть файлы шрифтов .ttf / .ttc - PullRequest
0 голосов
/ 15 декабря 2011

Я пытаюсь нарисовать некоторый текст с помощью OpenGL на iPad. Поэтому я использую библиотеку Freetype 2 для загрузки файлов шрифтов. Например, как:

        FT_New_Face(ft, "/System/Library/Fonts/Geneva.dfont", 0, &face)

Компилятор не выдает никакой ошибки при открытии файла, но когда я пытаюсь это сделать:

        FT_New_Face(ft, "/System/Library/Fonts/HelveticaLight.ttf", 0, &face)

Я получаю ошибку как:

        "FT_Stream_Open: could not open `/System/Library/Fonts/HelveticaLight.ttf'
         Could not open font"

Я использую библиотеку Freetype 2 для iOS здесь:

https://github.com/cdave1/freetype2-ios

Я читал, что Feetype 2 поддерживает шрифты TrueType, но я не знаю причину, по которой он не может открывать .ttf / .ttc файлы.

Спасибо

1 Ответ

0 голосов
/ 14 марта 2012

Попробуйте найти путь к шрифту в CGFontCache.plist:

NSDictionary *fontsDict = [NSDictionary dictionaryWithContentsOfFile:@"/System/Library/Fonts/CGFontCache.plist"];
NSDictionary* traitsDict = [fontsDict valueForKey:@"TraitMappings"];
NSDictionary *arialMappingDict = [traitsDict valueForKey:@"Arial"];
NSDictionary *namesDict = [fontsDict valueForKey:@"Names"];
NSString* arialPathSting = [namesDict valueForKey:[arialMappingDict valueForKey:@"Plain"]];
FT_Error error = FT_New_Face(ft, [arialPathSting UTF8String], 0, &face)

Работает нормально для устройства iOS, но имеет проблемы с симулятором. На самом деле там я не смог найти CGFontCache.plist на симуляторе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...