Некорректный рендеринг шрифта в Qt (Symbian) - PullRequest
2 голосов
/ 02 марта 2011

Я уже некоторое время пытаюсь заставить работать рендеринг пользовательских шрифтов в приложении Symbian Qt (4.6).Для большинства шрифтов и большинства глифов все работает просто отлично, используя метод, подобный this .

Однако, для большинства шрифтов многие глифы отображаются неправильно - по сути, неправильный глифоказаны.Я попробовал приложение Symbian C ++, используя тот же метод загрузки, и что делает правильно отображает.Итак, это похоже на ошибку Qt, и на самом деле все ужасные подробности: здесь .

Может кто-нибудь предложить обходной путь, чтобы получить полный рендеринг шрифта TTF, работающий на устройствах Symbian ^ 3 вQt 4.6?

Ответы [ 2 ]

1 голос
/ 18 марта 2011

Хотя у меня нет опыта работы с Symbian Qt Apps, я работал в прошлом году в течение нескольких месяцев в приложении Qt для двух сред (Win32 и Mac OS X), которое в основном связано с рендерингом шрифтов.

QFont рендеринга -в Win32 / Mac OS X- в целом работает гладко, но если у вас есть продвинутые требования к отрисовке шрифтов, вы можете столкнуться с несколькими серьезными проблемами:

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

б) Если вы попытаетесь загрузить некоторые (плохие?) Шрифты TTF / OTF для исключительного использования вашего приложения (то есть для загрузки неустановленных шрифтов, чтобы использовать их в вашем приложении), приложение вылетает, и сбой происходит внутри Код библиотеки Qt (он пытается удвоить некоторые буферы). Это очень редкая ошибка: со мной произошло всего 5-10 шрифтов из 90 000 шрифтов, которые я тестировал, но все равно раздражает, если основная задача вашего приложения связана с рендерингом шрифтов.

Мой обходной путь - использовать FreeType2 (с открытым исходным кодом) библиотека:

-> Он никогда не падает (просто возвращает ошибку на плохих шрифтах)

-> Это примерно в 4-5 раз быстрее, чем рендеринг QFont

FreeType2 не является прямой заменой QFont, и ему, безусловно, требуется потратить дополнительное время, чтобы понять некоторые базовые (низкоуровневые) концепции, прежде чем использовать его, но если вам действительно нужна быстрая и надежная библиотека для рендеринга любого TTF / OTF (+ другой) шрифт в серое или черно-белое изображение, я настоятельно рекомендую его в качестве окончательного выбора.

0 голосов
/ 20 марта 2011

Окончательный ответ - это ошибка QT, но, к счастью, она исправлена ​​в QT 4.7.2.Теперь просто нужно дождаться, пока Ovi Store примет приложения Nokia QT 4.7.2 ....

...