Хотя у меня нет опыта работы с приложениями Symbian Qt, я работал в прошлом году в течение нескольких месяцев в приложении Qt с двойной средой (Win32 и Mac OS X), которое в основном связано с рендерингом шрифтов.
Рендеринг QFont -в Win32 / Mac OS X- в целом работает гладко, но если у вас есть расширенные требования к рендерингу шрифтов, вы можете столкнуться с несколькими серьезными проблемами:
a) Невозможно определить, действительно ли конкретный символ Юникода присутствует в определенном шрифте (т.е. невозможно полностью отключить механизм подстановки символов - вы можете предоставить только подсказки замены)
б) Если вы попытаетесь загрузить некоторые определенные (плохие?) шрифты TTF / OTF для исключительного использования вашего приложения (то есть для загрузки неустановленных шрифтов для их использования в вашем приложении), приложение выйдет из строя, и сбой будет внутри кода библиотек Qt (он пытается дважды освободить некоторые буферы). Это очень редкая ошибка: это случилось со мной всего для 5-10 шрифтов из 90 000 шрифтов, которые я тестировал, но все еще раздражает, если основная задача вашего приложения связана с рендерингом шрифтов.
Мое обходное решение заключалось в использовании библиотеки FreeType2 (с открытым исходным кодом):
-> Он никогда не вылетает (просто возвращает ошибку на плохих шрифтах)
-> Это примерно в 4-5 раз быстрее, чем рендеринг QFont
FreeType2 не является прямой заменой QFont и наверняка требует дополнительного времени, чтобы понять некоторые базовые (низкоуровневые) концепции перед его использованием, но если вам действительно нужна быстрая и надежная библиотека для рендеринга любых TTF / OTF (+ other) в серое или черно-белое изображение, я настоятельно рекомендую его как лучший выбор.
person
Fivos Vilanakis
schedule
18.03.2011