Как я могу получить список доступных шрифтов?
Было бы лучше, если бы мне не приходилось зависеть от чего-то огромного.
Мое решение - перечислить каталог /usr/share/fonts
в Linux и C:\Windows\Fonts
в Windows. Это правильный способ сделать это?
Как я могу получить список доступных шрифтов?
Было бы лучше, если бы мне не приходилось зависеть от чего-то огромного.
Мое решение - перечислить каталог /usr/share/fonts
в Linux и C:\Windows\Fonts
в Windows. Это правильный способ сделать это?
Нет, это НЕ правильный путь. Однако проблема в том, что на самом деле нет правильного пути, кроме стандартизации чего-то вроде freetype или написания собственной библиотеки с множеством бэкэндов для разных операционных систем.
Чтобы быть более ясным: в большинстве операционных систем есть растровые шрифты, контурные шрифты, разные кодировки шрифтов, различные другие форматы шрифтов, которые встречаются, но не так хорошо поддерживаются или поддерживаются некоторыми дополнительными плагинами, неалфавитными шрифтами (подумайте о Wingdings , шахматные фигуры и т. д.), цветные шрифты, шрифты TeX, шрифты postscript, 3D-шрифты и т. д.
Более того, у вас может не быть даже стандартного способа их перечисления. Например, большинство операционных систем перечисляют шрифты по имени и размеру, но система X Window традиционно перечисляет шрифты по множеству заголовков столбцов, включая их вес, были ли они без засечек, с фиксированным / переменным интервалом, курсивом или наклонным шрифтом и т. Д. .
БОЛЬШЕ, у вас есть проблемы, такие как пользовательские шрифты по сравнению с общесистемными шрифтами, и даже сетевые шрифты и серверы шрифтов, а теперь и веб-шрифты.
Короче говоря, шрифты сложны. Именно по таким причинам существуют такие библиотеки, как freetype. Я предлагаю просто использовать один.
НО, если вам нужно более быстрое и хакерское решение, перечисление этих каталогов - это начало. Вероятно, вам следует сделать два упомянутых метода двумя возможными бэкэндами, с бэкэндами по умолчанию, выбранными для Linux и Windows, но, возможно, вместо этого можно указать / usr / share / X11 / fonts или перечислить шрифты через defoma, например, вместо этого.
Что ж ... Я бы использовал OpenGL и стандартные (гарантированные) шрифты, список которых можно найти на ЗДЕСЬ
Или я бы взглянул на эти ссылки:
Или вы можете просто использовать графическую библиотеку (SDL, OpenGL) и BITMAP со шрифтом в нем ... И использовать это для текста! :)
Удачи, надеюсь, вы найдете то, что ищете!