Масштабирование растровых системных шрифтов с AEB эффектом

Kernel-side graphics support
  • Что-то не так делаешь. Размер шрифта фиксированный. Вечером попробую дома открыть, может получится
    Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!
  • Таблица символов cp866. КОС на ней сделана
    Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!
  • GerdtR wrote:Таблица символов cp866. КОС на ней сделана
    Благодарю за вашу помощь). Есть вопрос небольшой - как работает системное сглаживание шрифтов? Ну, то есть, в целом?

    Лично я тут немного потратил время на исследование вопроса. Число возможных пространственных структур окрестности пикселя ограничено, теоретически, можно сделать для каждого варианта окрестностей - соответствующие маски. Теоретический максимум вариантов окрестностей 3x3 - 2^9. Но на шрифтах 8x9 в итоге реализовались только 348. С точностью до отражений и негативов - всего 104
    И тут обнаружилось, что этот способ сглаживания не канает. Потому что 104 маски - это сто четыре маски.
    Но для лучшего понимания вопроса пиксельной графики... По моему, это тем не менее, было не безполезно...

    И ещё кое что... А что если покурить чего нибудь тяжёлое, и замутить на этих масках можно сделать улучшенную компрессию шрифтов)
  • Была и некоторая статья на Хабр,
    Шрифты в условиях экстремальной экономии
  • lexsilentium wrote:как работает системное сглаживание шрифтов?
    Я когда писал эмулятор для запуска программ Колибри под Линукс, тоже озадачивался этим вопросом. Пришлось делать самому, но сделал очень похоже (можешь помедитировать над функцией k_prepare_char в gui.c).
  • Нету там никаких масок, тупо проверка соседних пикселей для четырёх вариантов треугольников и двух вариантов высоких треугольников. Дёшево и сердито. Это с масштабированием, а без него всего два варианта. А без ClearType только один. Со знанием ассемблера можно попытаться что-то понять в функции drawChar.
    Шрифт встроен в ядро и сжимается вместе с ним. charUni.mt, в котором 1400 символов по 16 байт, сжимается где-то до 5 килобайт.
  • Who is online

    Users browsing this forum: No registered users and 10 guests