8-900-374-94-44
[email protected]
Slide Image
Меню

Font generator bitmap: BMFont — AngelCode.com

Font editor Bitmap Font, superhero font generator, text, bitmap, asset png

Font editor Bitmap Font, superhero font generator, text, bitmap, asset png

PNG tags

  • text,
  • bitmap,
  • asset,
  • software,
  • screenshot,
  • parameter,
  • multilingualism,
  • internationalization And Localization,
  • font Editor,
  • brand,
  • unity,
  • png,
  • transparent,
  • free download

PNG info

Dimensions
1418x609px
Filesize
197.9KB
MIME type
Image/png
Download this PNG ( 197.9KB )

Online resize png

width(px)

height(px)

License

Non-commercial use, DMCA Contact Us

  • org/ImageObject»> Logo Location Computer Icons Symbol, symbol, flag, text, logo png 512x512px 16.22KB
  • chat bubbles illustration, Language interpretation Multilingualism Translation Speech, language, balloon, foreign Language, stemming png 880x560px 268.56KB
  • Unity logo illustration, Unity Game engine Logo Video game, Corelle Brands, angle, text, c png 500x500px 50.76KB
  • black laptop computer illustration, Computer programming Web development Computer Software Programming language Theme, coder, electronics, gadget, internet png 8000x5320px 216.39KB
  • Computer Icons Editing Font Awesome graphics editor, advertising, angle, text, logo png 800x600px 12.
    91KB
  • Unity Technologies Adobe Flash Computer Software Technology, unity, emblem, electronics, company png 512x512px 60.46KB
  • Geometric No., four layered Options chart, infographic, blue, angle png 1084x620px 144.13KB
  • Logo Mastercard Font, solar home, text, orange, logo png 640x480px 34.69KB
  • Integrated Circuits & Chips Computer Icons Computer Software, others, text, microchip, иконки png 512x512px 9.46KB
  • Button Unity Sprite Menu, buttons, blue, angle, text png 1752x616px 173.99KB
  • org/ImageObject»> Unreal Engine 4 Game engine Logo Computer Software, game logo, text, trademark, video Game png 3100x3396px 1.75MB
  • Economic calendar Universidad Nacional Pedro Henríquez Ureña AvaTrade Time, CALENDRIER, blue, text, calendar png 565x455px 8.3KB
  • 15% Off Sale, web Design, text, logo png 8000x5875px 911.52KB
  • Unity Computer Icons Software development kit, others, angle, triangle, logo png 540x540px 8.79KB
  • WhatsApp Message Icon, Whatsapp logo, WhatsApp logo, text, logo, grass png 512x512px 26.16KB
  • Visual Studio Code Microsoft Visual Studio Source code editor Sublime Text, notice, blue, logo, electron png 1024x1024px 222. 41KB
  • Unity Technologies Game engine Video game developer, unity, game, angle, electronics png 2048x1089px 19.14KB
  • Unity Video game developer Logo, others, game, angle, company png 855x312px 63.02KB
  • Lenovo logo, Laptop Lenovo Logo Desktop, lenovo logo, electronics, text, trademark png 3000x732px 175.72KB
  • Ubuntu Linux Debian Computer Software, 16, text, computer, logo png 982x814px 47.71KB
  • Notepad++ Source code editor Text editor HTML, binder note, text, logo, c png 600x430px 57.79KB
  • org/ImageObject»> three rectangular collage, PicsArt Studio Editing Tutorial, others, glass, frame, angle png 530x753px 90.92KB
  • Evaluation Computer Icons Information, archaeologist, text, logo, computer Program png 1024x1024px 24.13KB
  • game application illustration, User interface design Game, Game UI interface buttons Game Animation, game, gold, video Game png 1024x1024px 502.14KB
  • Translation Language localisation English Hawaiian Internationalization and localization, translate, angle, english, text png 900x900px 112.2KB
  • Notepad++ Source code editor Text editor, microsoft, text, logo, vertebrate png 1480x1204px 485. 65KB
  • Computer Icons editing Font Awesome Video editing, register icon, angle, text, logo png 512x512px 5.45KB
  • Text PicsArt Studio Editing Font, stylish font, text, logo, brand png 452x640px 130.2KB
  • green pencil, CorelDRAW Logo Cdr Adobe Illustrator, Icon Free Corel Draw, angle, grass, symbol png 512x512px 122.55KB
  • Software Testing Computer Icons Computer Software, Openframeworks, text, theme, test Automation png 512x512px 30.91KB
  • assorted-application lot, Local area network Computer network Icon, WIFI, blue, text, service png 1614x1403px 95. 36KB
  • Internationalization and localization Language localisation Translation Service, others, innovation, business, language Interpretation png 550x479px 211.51KB
  • Translation Foreign language Language interpretation Transcreation, language, english, text, logo png 600x600px 20.89KB
  • Lint Sublime Text Source code Computer program Python, Github, computer Program, computer Programming, brand png 1696x1182px 431.56KB
  • Adobe Creative Cloud Adobe Systems Adobe shop Elements Adobe Lightroom, Logo Adobe, text, rectangle, adobe png 620x620px 112.38KB
  • Unity Software Developer Video game developer Game engine, unity games, angle, 3D Computer Graphics, text png 500x500px 11. 24KB
  • Web banner graphy, Red ribbon, text, stock Photography, red Ribbon png 6451x1404px 902.37KB
  • Corel Draw logo, BMW X6 CorelDRAW Computer Software Logo, Corel Draw Free Files, computer Wallpaper, tutorial, image Editing png 512x512px 211.46KB
  • Notepad++ Text editor Source code editor, notepad, text, logo, c png 600x430px 57.79KB
  • black and white Goth font text, Tattoo Typeface Lettering Font editor Font, Thug Life, text, typography, tattoo Artist png 1200x1200px 765.5KB
  • Iron Man Logo Brand Ironman Triathlon Font, Iron Man, text, media, area png 1100x778px 61.
    91KB
  • Atom Computer Icons Text editor Electron macOS, Github, logo, symbol, sublime Text png 1024x1024px 628.52KB
  • Computer Icons Video editing graphics editor, others, angle, text, monochrome png 1600x1600px 26.14KB
  • Unity Video game Logo Augmented reality Game engine, others, angle, 3D Computer Graphics, text png 500x500px 33.67KB
  • Software asset management Business Organization Enterprise resource planning, Business, text, people, information Technology png 664x664px 62.04KB
  • Computer keyboard Computer Icons Keyboard shortcut Computer Monitors Computer hardware, keyboard, electronics, text, computer Keyboard png 2000x1333px 28. 62KB
  • Comics Cartoon, Comics explosion cloud dialog, bang omg boom oh wow opps texts, food, text, comic Book png 3123x3155px 755.78KB
  • swirling arrow illustration, Arrow Drawing Sketch, Arrow sketch, angle, pencil, text png 1047x1245px 40.58KB
  • Paper Laptop Epson Logo Projector, logo, blue, electronics, text png 2000x451px 50.81KB
  • top secret, blue brand font, Top Secret, blue, bitmap, brand png 512x512px 291.44KB

BMFont — AngelCode.com

Эта программа позволит вам создавать растровые шрифты из шрифтов TrueType. Приложение генерирует как файлы изображений, так и описания персонажей, которые могут быть прочитаны игрой для удобства отрисовка шрифтов.

Программа является бесплатной и с открытым исходным кодом, но пожертвование приветствуется.

Если у вас нет средства просмотра изображений, способного читать файлы TGA, PNG или DDS, я порекомендуйте PUPP, еще один бесплатный продукт от AngelCode.

Загрузки

Загрузить 32-битный и 64-битный исполняемый файл для v1.14a (1.28MB, 08.04.2021)

Особенности

  • Поддержка полного набора символов Unicode 13.0, а также 8-битных наборов символов OEM
  • Оптимальное использование пространства текстуры, т. е. как можно меньше неиспользуемой области
  • Поддержка пар кернинга
  • Простой в использовании формат файла, либо обычный текстовый файл, либо файлы xml. Двоичный формат доступен для тех, кто предпочитает
  • Вывод 8-битной или 32-битной текстуры (файлы TGA, PNG и DDS)
  • Опция для упаковки 4 слоев изображений шрифтов в 1 32-битную текстуру. Требуется специальный шейдер для рендеринга, но он экономит много памяти.
  • Сглаживание, как за счет собственного сглаживания шрифтов Windows, так и за счет суперсэмплирования
  • Настраиваемые отступы и интервалы между символами
  • Выбор символов из текстового файла, поддерживает файлы в кодировке UTF8 и UTF16
  • Создание растрового шрифта из командной строки
  • Импорт цветных изображений в виде символов, поддерживает: bmp, jpg, tga, dds, png
  • Дополнительный контур символов шрифта
  • Дополнительная упаковка символов с контуром в 1 канал. Требуется специальный шейдер для распаковки во время рендеринга, но экономит много памяти
  • Использование шрифтов TrueType непосредственно из файла без их предварительной установки
  • Размер шрифта автоподбора для целевого размера текстуры

Документация

Руководство прилагается к инструменту, но для тех, кто хочет с ним ознакомиться без предварительной установки инструмента, он также доступен здесь. В инструкции описаны оба как использовать инструмент и формат файла сгенерированных файлов.

  • Электронная документация

Исходный код

Исходный код доступен под широко известной лицензией zlib. SVN-репозиторий размещен на SourceForge.net

Получите код, указав в клиенте svn адрес: http://svn.code.sf.net/p/bmfont/code/trunk.

Если вам нужна поддержка по коду, посетите форумы.

Наблюдение за предупреждением о вирусе

Известно, что антивирус Avira выдает предупреждение о вирусе при сканировании bmfont.exe или установщика. Это ложное положительные, генерируемые их эвристическими функциями, которые пытаются предсказать и поймать неизвестные вирусы. я уже сообщил это ложное срабатывание в Avira несколько раз и каждый раз они распознают его как ложное срабатывание, однако по какой-то причине проблема возвращается через несколько месяцев (предположительно, когда они обновляют эвристические функции).

Если кто-нибудь знает, что мне нужно изменить в коде, чтобы предотвратить это ложное предупреждение, я бы очень хотел знать.

Учебники и ресурсы

Вот несколько ссылок на другие ресурсы, содержащие информацию или инструменты, полезные для тех, кто интересуется растровыми шрифтами.

  • Растровые шрифты Андреаса Йнссона
  • Растровые шрифты Чада Вернона
  • Краткое руководство: растровые шрифты переменной ширины от Promit
  • Реализация BMFont OpenGL от legolas558
  • Модуль bmfont BlitzMax Майка Виринга
  • XML-сериализатор C# для загрузки шрифтов от DeadlyDan
  • C# XML BMFont reader Антуан Гильбо
  • Преобразователь исходного кода BMFont в C, Ларс Оле Понтоппидан
  • Обсуждение законности растровых шрифтов
  • Инструмент для преобразования растровых шрифтов в поля расстояния
  • Еще один инструмент для преобразования растровых шрифтов в поля расстояния
  • PlayOnLinux — может использоваться для запуска BMFont в Linux
  • GlyphCombiner — инструмент Mac OS X от Binary Blobs для объединения нескольких растровых шрифтов в один атлас.

Ниже приведены некоторые другие инструменты, которые также генерируют выходные данные в том же формате, который я придумал для BMFont и который широко используется. в отрасли сегодня.

  • Littera — бесплатное веб-приложение
  • Glyph Designer — платное приложение для Mac
  • ShoeBox — бесплатный инструмент, написанный с помощью Adobe Air
  • Hiero — инструмент с открытым исходным кодом, написанный на Java

Изменения

  • 1.14a — 08.04.2021
    • Исправлена ​​ошибка, из-за которой недопустимый символьный глиф не помещался при использовании автоподбора.
    • В пакет включены как 64-битные, так и 32-битные сборки.
  • 1.14 — 2021/01/05
    • Исправлена ​​ошибка с большими шрифтами, когда API Windows неправильно сообщал об отрицательной ширине для глифов.
    • Улучшена обработка условий нехватки памяти.
    • Исправлен сбой, который мог произойти при экспорте символов Юникода выше 0x10000 с парами кернинга.
    • Исправлен сбой, когда аргумент командной строки -c был относительным путем, а конфигурация включала файл шрифта или файлы изображений.
    • Исправлен сбой при сохранении файла конфигурации с добавленным файлом шрифта из того же каталога.
    • Исправлена ​​высота ячейки при использовании фиксированной высоты и суперсэмплинга.
    • Исправлена ​​совместимость с Windows XP.
    • Исправлены проблемы с масштабированием и обрезкой при использовании масштаба высоты при рендеринге из контура.
    • Исправлено зависание приложения при создании очень больших шрифтов.
    • Исходный код теперь доступен по лицензии zlib.
    • Преобразованное приложение для компиляции для Windows с Unicode для лучшей поддержки имен файлов и шрифтов с международными символами.
    • Библиотека libpng обновлена ​​до версии 1.6.19.
    • Zlib обновлен до версии 1.2.8.
    • libjpeg обновлен до версии 9a.
    • libsquish обновлен до версии 1. 13.
    • Исправлена ​​проблема с экспортом глифов для некоторых международных языков.
    • Добавлена ​​поддержка Unicode 13.0.
    • Теперь доступна 64-битная сборка для поддержки огромных растровых шрифтов, для создания которых требуется более 2 ГБ памяти.
    • Глиф по умолчанию для недопустимых символов теперь правильно растрируется, если он также не отображается из контура.
    • В строке состояния теперь отображается идентификатор глифа для символов.
    • Исправлены поврежденные глифы при рендеринге очень больших шрифтов (1000+ пикселей) из контура глифов.
    • Добавлена ​​функция автоподбора, которая автоматически определяет максимальный размер шрифта, соответствующий заданному размеру текстуры.
    • Исправлен сбой при запуске, если шрифт по умолчанию не имеет символов Unicode в диапазоне 0-255.
    • Добавлена ​​поддержка путей к файлам с символами Unicode.
    • Улучшена поддержка пар кернинга в шрифтах True Type, которые хранятся в виде диапазонов.
  • 1.13 — 2012/08/12
    • Добавлена ​​возможность экспорта шрифтов с фиксированной высотой ячеек для облегчения постобработки.
    • Улучшена поддержка экспорта пар кернинга для истинных типов, использующих таблицу GPOS вместо таблицы KERN.
    • Пары кернинга больше не экспортируются для идентификаторов символов, которые были заменены импортированными значками.
    • Улучшена упаковка глифов при наличии больших непропорциональных изображений.
    • Окончательная текстура больше не имеет рамок вокруг глифов, когда канал инвертирован или установлен на единицу.
    • Исправлено отсечение субпикселей в глифах с суперсэмплингом.
    • Реализована альтернативная растеризация глифа на основе контура истинного типа.
    • При растеризации из контура истинного типа не обрезаются глифы, которые выходят за пределы высоты ячейки.
    • Разрешить отключение подсказок при растеризации из контура истинного типа.
    • Повторно добавлен параметр для рендеринга с помощью ClearType с собственным механизмом шрифтов Windows.
    • Исправлена ​​ошибка, из-за которой сохраненный формат XML иногда не закрывал тег ‘kernings’, если не было пар кернинга.
    • Исправлена ​​ошибка с дублированием пар кернинга в выводе шрифта, отличного от Unicode.
    • Исправлена ​​проблема, из-за которой двойной щелчок в диалоговом окне файла иногда приводил к изменению выбранных символов под мышью.
    • Включено кодирование длин серий для вывода TGA.
    • Добавлена ​​возможность принудительно установить xoffset и yoffset на 0, а xadvance — на ширину.
    • Теперь приложение можно открыть напрямую с помощью файла конфигурации из проводника.
    • При загрузке файла bmfc символы теперь выбираются соответствующим образом.
    • В диалоговом окне шрифтов больше не отображаются повернутые шрифты, т. е. шрифты с префиксом @.
    • Добавлена ​​поддержка работы со шрифтом из файла, теперь его не нужно предварительно устанавливать.
    • Импортированные изображения теперь сохраняются с относительным путем в файле конфигурации.
    • Исправлено отсечение, которое могло произойти на левом и правом краях при создании шрифта в курсивном режиме.
    • Пары кернинга теперь можно опускать, если они не используются в шрифте TrueType.
    • Теперь диалоги сохранения и загрузки конфигурации будут открываться там, где был загружен или сохранен последний файл конфигурации.
  • 1.12 — 2009/08/02
    • Добавлены предустановки в параметры экспорта, чтобы помочь выбрать правильные значения для каналов текстуры.
    • Исправлена ​​ошибка при создании шрифта из командной строки, когда файлы подкачки в дескрипторе шрифта имели неправильное имя.
    • Добавлена ​​возможность инвертировать отдельные каналы текстур для расширения возможностей экспорта.
    • Добавлен инструмент командной строки, который будет ждать завершения генерации перед выходом.
    • Исправлено yoffset при масштабировании высоты шрифта.
    • Исправлена ​​ошибка выбора символов из файла для не-юникода с символами выше ASCII 127.
    • Количество цифр для идентификатора страницы в файлах текстур теперь адаптировано к количеству сгенерированных страниц.
    • Добавлена ​​поддержка настройки xoffset, yoffset и продвижения для импортированных значков.
  • 1.11b — 08.03.2009
    • Исправлена ​​ошибка выбора символов из файла с файлами в кодировке UTF16.
    • Исправлена ​​ошибка в процедуре упаковки, из-за которой в редких случаях символы могли перекрываться.
    • Исправлен выбор диапазонов юникода по клику на галочку в списке.
  • 1.11а — 2008/12/06
    • Исправлено смещение субпикселей высоты глифа, вызванное суперсэмплингом.
    • Исправлена ​​ошибка в GDI, из-за которой возвращаемая высота глифа была меньше фактического растрового изображения глифа.
  • 1.11 — 2008/10/11
    • Исправлено зависание, которое могло произойти при выборе символов из файла.
    • Исправлена ​​обрезка некоторых шрифтов True Type.
    • Исправлен параметр «Выбрать все символы» в режиме ASCII.
    • Добавлена ​​опция «Вывод недопустимого глифа».
    • Удален параметр «Отключить недоступные символы».
    • Исправлена ​​проблема, из-за которой символы, не определенные в стандарте Unicode, могли быть выбраны при выборе символов из файла.
    • Индикатор теперь отображается в сетке символов, куда импортируются изображения.
    • Исправлена ​​ошибка, из-за которой главное окно перемещалось за другими окнами при закрытии диспетчера изображений.
    • Исправлена ​​ошибка, из-за которой отмена диалогового окна с изображением значка продолжала действовать.
    • Теперь можно выбирать размер шрифта по высоте символов, а не по высоте строки.
  • 1.10b — 2008/06/15
    • Исправлен индикатор канала в дескрипторе шрифта для цветных значков.
    • Исправлена ​​обрезка символов в мелких шрифтах.
    • Исправлена ​​ошибка с черными 8-битными текстурами при установленном флажке для пакетных символов.
  • 1.10a — 08.06.2008
    • Исправлена ​​документация в отношении значения размера блока в двоичном формате файла.
    • Исправлена ​​ошибка с «Выбором символов из файла», из-за которой некоторые символы могли быть пропущены между блоками чтения по 1 КБ.
    • Исправлена ​​проблема с округлением при суперсэмплинге, из-за которой экспортируемая высота строки была на единицу меньше высоты наибольшего символа.
    • Удалена внешняя зависимость от Microsoft DLL.
    • libpng обновлен до версии 1.2.29.
  • 1.10 — 2008/05/11
    • Выбор символов из файла теперь поддерживает как UTF-8, так и UTF-16 с автоматическим определением с помощью метки порядка следования байтов.
    • Исправлена ​​ошибка, из-за которой подмножества Unicode не отображались, когда не был выбран параметр «Отключить неопределенные символы».
    • В строке состояния отображается идентификатор персонажа, находящегося под курсором мыши.
    • Добавлена ​​опция «очистить все».
    • Размер окна предварительного просмотра теперь автоматически изменяется в соответствии с текстурой при масштабировании.
    • Добавлена ​​поддержка символов Юникода выше 0xFFFF.
    • Добавлена ​​поддержка создания текстур со сжатием DXT1, DXT3 и DXT5.
    • Разделить диалоговое окно настроек шрифта на два диалоговых окна, одно для графики шрифта и одно для параметров экспорта.
    • Содержимое каждого канала текстуры теперь можно настраивать.
    • Формат файла обновлен для поддержки новой функции.
  • 1.9c — 2007/11/16
    • Исправлены обратные значения интервалов в диалоговом окне настроек шрифта.
    • Генерация шрифта теперь может быть прервана, пока символы добавляются к текстуре.
    • Значительно улучшена скорость генерации текстур.
  • 1.9б — 28.10.2007
    • Исправлено заполнение
    • Улучшенная документация
  • 1. 9а — 2007/09/16
    • Разрешение использования Unicode для всех шрифтов, даже для шрифтов с одной кодовой страницей
    • Исправлены сообщения о состоянии при создании шрифтов.
  • 1.9 — 2007/08/19
    • Добавлена ​​поддержка импорта цветных значков
    • Поддерживаемые форматы входных изображений: bmp, tga, png, jpg, dds
    • Добавлена ​​поддержка выделения черным контуром символов.
    • Символы с контуром могут быть закодированы в 1 канал для экономии места
    • Контур создан со скругленными углами
    • Увеличена версия бинарного файла, так как есть новая информация
  • 1.8c — 25.01.2007
    • Исправлена ​​ошибка, из-за которой заставка шрифтов путалась с установленным флагом 4-канальной упаковки, даже при сохранении в 8-битном формате.
  • 1.8b — 06.01.2007
    • Фиксированная величина кернинга в двоичном формате файла при использовании суперсэмплинга
  • 1. 8а — 23.11.2006
    • Исправлена ​​ошибка выравнивания с 8-битными файлами TGA и DDS с шириной, отличной от степени 4.
    • Исправлен сбой в Windows с установленными редакторами методов ввода, например. японская и китайская винда
  • 1.8 — 2006/11/11
    • Добавлена ​​поддержка бинарного файла дескриптора шрифта
    • Добавлена ​​поддержка сохранения файлов текстур PNG
    • Приложение теперь запоминает конфигурацию с момента последнего выполнения
    • Улучшено использование для выбора символов в режиме Unicode
    • Добавлена ​​возможность выбора всех символов из текстового файла
    • Пары кернинга с количеством 0 больше не выводятся
    • Файл дескриптора шрифта XML теперь группирует страницы, символы и пары кернинга
    • Конфигурацию шрифта можно сохранить на диск, а затем перезагрузить
    • Добавлена ​​поддержка генерации шрифтов через командную строку с использованием сохраненной конфигурации.
    • Добавлена ​​поддержка сохранения файлов текстур DDS (без сжатия)
  • 1.7а — 2006/09/12
    • Исправлено создание не-юникодных шрифтов
  • 1.7 — 08.09.2006
    • Добавлен стандартный заголовок xml
    • Добавлена ​​поддержка кодировок Юникода.
    • Добавлена ​​возможность упаковывать монохромные символы в каждый из 4-х каналов 32-битной текстуры.
    • Добавлен тег с именами файлов текстур в файл дескриптора шрифта
    • Генерация текстур теперь выполняется в фоновом потоке
  • 1.6 — 2006/02/18
    • Теперь можно выбирать между XML и текстом для формата файла дескриптора шрифта.
    • Фиксированные размеры кернинга с суперсэмплингом
  • 1.5 — 01.10.2005
    • Реализовано растяжение, чтобы шрифты теперь можно было масштабировать неравномерно (работает только на Win2K и выше).
  • 1. 4а — 26.08.2005
    • Теперь также поддерживаются шрифты, отличные от TrueType, такие как Script и System.
    • Небольшое исправление рендеринга при использовании отступов.
  • 1.4 — 2005/07/17
    • В окне предварительного просмотра теперь отображается номер страницы в заголовке.
    • Символы без определенного глифа теперь могут автоматически удаляться (работает только в Win2K или более поздних версиях).
    • Пары кернинга теперь также сохраняются.
    • Добавлена ​​поддержка выбираемой кодировки, например. арабский и еврейский шрифты.
  • 1.3 — 08.05.2005
    • Добавлена ​​поддержка курсивных шрифтов.
    • Приложение больше не падает при визуализации без выбранных символов.
  • 1.2 — 09.03.2005
    • Теперь пользователь может выбрать создание растрового шрифта со сглаживанием шрифта или без него.
    • Сглаживание шрифтов теперь выполняется без ClearType, поэтому артефакты больше не генерируются в выходной текстуре.
    • Добавлен значок программы.
  • 1.1 — 05.03.2005
    • Пользователь теперь может выбирать сохранение в 32-битном и 8-битном TGA.
    • Интервал между символами теперь можно установить вручную.
    • Исправлена ​​ошибка, из-за которой некоторые шрифты не отображались в списке шрифтов.
  • 1.0a — 27.11.2004
    • Исправлена ​​проблема со значениями, которые не корректировались для компенсации уровня сглаживания.
  • 1.0 — 2004/02/14
    • Первая общедоступная версия.

Особая благодарность

  • 4A Games
  • КодМастерс
  • Идолы
  • Кроум Студиос
  • Непослушный пес
  • Пирамида Инк.
  • Присоска
  • Триниджи
  • WizarBox

Некоторые вещи, которые будут реализованы в будущих версиях:

  • Улучшенная генерация шрифтов
    • Поддержка тени.
    • Поддержка размытия.
    • Цветные глифы.
  • Повышение удобства использования.
    • Добавить команду справки, которая открывает руководство, установленное вместе с приложением
    • Добавить всплывающие подсказки для диалогов и элементов управления
    • Выбор символов из файла может поддерживать интерфейс перетаскивания.
    • Импорт изображений поверх символов также может поддерживать интерфейс перетаскивания.
    • Добавить вывод файла журнала для отсутствующих глифов при сканировании текстовых файлов на наличие используемых символов.
    • Разрешить выбор шрифта в диалоговом окне общего шрифта Windows
  • Добавить предварительный просмотр шрифта
    • Разрешить пользователю писать текст и видеть результат. Должна быть возможность кодировать специальные символы, поскольку значки обычно импортируются поверх невидимых глифов.
  • Улучшение импорта значков
    • Разрешить импорт изображений в градациях серого в один канал, а не в полный 32-битный.
    • Предупреждать, если импортированный значок больше выходной текстуры.
    • Контекстное меню в окне персонажа для прямого импорта определенного персонажа.
  • Добавить поддержку плагинов для выходных форматов.
    • Разрешить подключаемым модулям форматировать как дескриптор шрифта, так и файлы изображений.
  • Поля расстояния со знаком для улучшения качества масштабирования растровых шрифтов. Вот инструмент, который преобразует вывод BMFont в шрифты поля расстояния.
  • опция для экспорта с предварительно умноженной альфой
  • Поддержка нескольких шрифтов и разных размеров шрифтов в одном выводе.

Как создать растровый шрифт с помощью FreeType | Кристиан Белер

Простое решение C++ для создания текстур растровых шрифтов для OpenGL, DirectX или Vulkan

Растровый шрифт, созданный с помощью генератора растровых шрифтов из этого руководства, изображение автора.

Растровые шрифты — это распространенный способ отображения текста в компьютерных графических API, таких как OpenGL, DirectX или Vulkan. Растровый шрифт — это большая текстура со всеми символами ASCII (или более). Затем текст можно визуализировать, создав четырехугольник для каждой буквы с примененным к нему правильным разделом текстуры растрового шрифта.

Есть много способов получить растровые шрифты. Во-первых, просто загрузите его из Интернета (просто погуглите растровую текстуру шрифта , и вы найдете его). Однако, если вы ищете определенный шрифт определенного размера, вы, вероятно, не сможете его найти.

Второй вариант — использование генератора растровых шрифтов. Существуют автономные и онлайн-инструменты, которые могут создавать текстуры растровых шрифтов из любого файла шрифта любого размера. Это определенное улучшение по сравнению с простой загрузкой случайных растровых шрифтов.

Однако, когда дело доходит до создания растровых шрифтов, есть еще лучшее решение: вы можете создавать их прямо в своей программе из любого файла шрифта с библиотекой FreeType.

Давайте посмотрим, как мы можем создать текстуру растрового шрифта с помощью FreeType. Первый шаг — загрузить библиотеку FreeType и добавить/связать ее с вашим проектом. Затем мы можем написать код для автоматической генерации растровых шрифтов.

Мы хотим создать простую функцию, которая может генерировать растровый шрифт из файла шрифта и сохранять его как изображение, поэтому определение нашего класса очень простое. Он принимает только имя файла и размер желаемого шрифта и имена файлов для результатов в качестве параметров.

Init FreeType

При реализации функции мы должны инициализировать библиотеку FreeType, а затем использовать ее для загрузки шрифта и установки размера шрифта, для чего требуется всего несколько функций FreeType.

Теперь мы можем выделить немного памяти для нашего растрового изображения. Поскольку имеется 128 символов ASCII (хотя первые 32 не печатаются), нам нужно изображение со 128 тайлами и разделить его на 8 строк по 16 столбцов в каждой. Мы также добавляем 2 пикселя заполнения к нашему размеру шрифта, чтобы не было размытия текстуры, когда результирующая текстура плохо масштабируется.

Метрики символов

Далее мы должны включить некоторые расчеты метрик шрифта, чтобы узнать, где находится базовая линия нашего шрифта. Некоторые символы, такие как 90 665 g 90 666 или 90 665 y 90 666, идут ниже базовой линии, поэтому, если мы просто нарисуем символы внизу каждой плитки, они перетекут в плитку ниже.

Для этого мы перебираем все печатные символы и загружаем каждое изображение глифа, чтобы получить доступ к метрикам глифа. Вычитая общую высоту символа из величины, на которую он поднимается над базовой линией (bearingY), мы можем узнать, насколько он опускается ниже базовой линии. Затем мы находим его максимум и сдвигаем все символы вверх на это значение при создании нашего изображения.

Метрики глифов в FreeType, изображение с сайта freetype.org.

Отрисовка персонажей

На данный момент мы готовы отрисовывать наших персонажей на растровое изображение. Мы просматриваем каждый символ, загружаем глиф, а затем используем функцию FT_Render_Glyph , чтобы позволить FreeType выяснить, как преобразовать векторные глифы в растровое изображение со сглаживанием. Затем нам нужно немного математики, чтобы правильно выровнять символ, прежде чем копировать растровое изображение одного символа из FreeType в наше большое растровое изображение в правильной позиции.

Теперь со сложными вещами покончено, осталось только сохранить растровое изображение в файл. Вот код для этого или просто посмотрите полный код в конце руководства.

Еще одно изображение растрового шрифта с другим шрифтом, созданным с помощью генератора растровых шрифтов из этого руководства, изображение автора.

Использовать генератор растровых шрифтов очень просто. Просто дайте ему файл шрифта и размер, который вы хотите, и имена файлов для ваших выходных данных (в Windows вы можете найти фактические файлы шрифтов ваших установленных шрифтов в C:/Windows/Шрифты/ ).

Если вы внимательно посмотрели код, то могли заметить, что мы также сохраняем ширину каждого символа и сохраняем ее в файл. Если вы используете моноширинный шрифт (то есть шрифт, в котором все символы имеют одинаковую ширину), вы можете игнорировать ширину символов. Однако в большинстве шрифтов используются символы разной ширины, поскольку такие символы, как i и m , обычно имеют совершенно разную ширину. При использовании такого шрифта для рендеринга текста нам нужно знать ширину каждого символа, чтобы перейти к следующему символу на правильное значение. Поэтому мы также храним ширину символов в файле и используем эту информацию в дополнение к растровому изображению при рендеринге текста.

В этом уроке мы сохраняем изображение в виде растрового изображения, потому что растровые изображения можно легко сохранить без каких-либо внешних библиотек. Однако наш буфер также включает альфа-канал, поэтому мы можем сохранить изображение в формате png, чтобы сохранить значения прозрачности. На самом деле нам вообще не нужно сохранять изображение. Мы также можем напрямую создать текстуру из буфера и сразу же использовать ее для рендеринга текста.

Создание растровых шрифтов непосредственно из файлов шрифтов с помощью FreeType — это простой и удобный способ обработки растровых шрифтов для рендеринга текста в компьютерной графике, и я использую систему, очень похожую на эту, в моем игровом движке OpenGL.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *