Библиотека масштабируемых шрифтов для Колибри

Discussing libraries simplifying applications development
  • Нужно обратный вызов (callback) предусмотреть, чтобы программа могла сама ответить на вопрос: "Является ли данный символ переносом строки?".
  • может просто выводить в битмап построчно?
    И мы уже давно не пешки,
    Мы пули, мы орлы, и решки!
    Война ютит бинарный код,
    Умри, или иди вперед!
  • кстати, да. Нужен параметр, задающий сколько байт пропускать при записи в битмап между строками пикселей (т.е. не трогаем столько байт, начинаем след. строку уже после них). Это нужно как для работы с bmp (выравнивание до 4х байт), так и для наложение текста на битмап фон/интерфейс, где у него могут быть произвольные отступы слева/справа
    И мы уже давно не пешки,
    Мы пули, мы орлы, и решки!
    Война ютит бинарный код,
    Умри, или иди вперед!
  • Сколько байт пропускать между строками пикселей? о_О
  • Он имел в виду бит. Хотя если подумать, то каждый бит изображения в Колибри это 3 или 4 байта (в зависимости от разрешения).
  • Mario. теперь я тебя не понял(

    вот например как представляется квадратик 3*3 6-м цветом палитры в bmp:

    6,6,6,0
    6,6,6,0
    6,6,6,0

    нули справа это выравнивание до кратности 4м. И это не биты, Mario, это байты. Для квадратика 5*5:

    6,6,6,6,6,0,0,0
    6,6,6,6,6,0,0,0
    6,6,6,6,6,0,0,0
    6,6,6,6,6,0,0,0
    6,6,6,6,6,0,0,0

    вот я имел ввиду, что если надо вывести символ на этот квадратик, в первом примере реквестуемый мною параметр был равен 1 (число байт (не бит!) нулей), во втором же - 3м.

    Такая задача стоит не только при работе с bmp, но и при работе с большим битмапом, в который (уже существующий) производится вывод.

    Для нового битмапа это выглядит так (вывод библиотеки):
    x,0,0,x
    x,0,x,0
    x,x,0,0
    x,0,x,0
    x,0,0,x

    это буква К цвета X,

    но, если надо ее вывести в готовый битмап, такой:

    0,0,0,0,0,0,x,0
    0,0,0,0,0,x,x,x
    0,0,0,0,0,x,0,x
    0,0,0,0,0,x,x,x
    0,0,0,0,0,0,x,0

    , пусть библиотека получает указатель на этот битмап, и значение реквестуемого параметра, равное 4м, и вернет такой результат:

    x,0,0,x,0,0,x,0
    x,0,x,0,0,x,x,x
    x,x,0,0,0,x,0,x
    x,0,x,0,0,x,x,x
    x,0,0,x,0,0,x,0

    вот что я имел ввиду =)
    И мы уже давно не пешки,
    Мы пули, мы орлы, и решки!
    Война ютит бинарный код,
    Умри, или иди вперед!
  • Теперь понятно - я для себя это называл "размером сдвига".
  • Mario, хорошо, я учту это в следующий раз.
    И мы уже давно не пешки,
    Мы пули, мы орлы, и решки!
    Война ютит бинарный код,
    Умри, или иди вперед!
  • Прогресс идет. Дописал конвертер шрифтов ttf в свой формат.
    На сегодняшний день формат шрифтов такой:

    Code: Select all

    db "KFONT100" ;заголовок
    dw 0 ;количество символов в файле
    dw 0 ;максимальная высота символа в файле
    
    ;таблица символов
    ;для каждого символа:
    dw 0 ;код символа в базовой плоскости UTF-16
    dw 0 ;ширина символа
    dd 0 ;смещение в файле на данные глифа
    dd 0 ;длина описания глифа в байтах
    
    ;описание глифа
    dw 0 ;координата x
    dw 0 ;координата y
    dw 0 ;координата x
    dw 0 ;координата y
    ;и так далее
    
    Формат простой, легко парсится, хорошо пакуется kpackом, поддерживает до 2^16 символов (хватит на русский, английский, базовые китайский, японский, корейский, иврит и все прочие вместе взятые). Глифы могут быть до 65535x65535, то есть с тем же разрешением, что и глифы в ttf. Максимальный размер файла шрифта - всего лишь 4 гигабайта, но на первое время, я думаю, хватит. :3

    Впереди - написание парсера для этого формата (я думаю, это не займет очень много времени), а так же окукливание всего имеющегося кода (растеризатор, конвертор dos2utf, модуль альфа-канала и будущий парсер) в единую coff-библиотеку с простым API. Сколько все это займет - не знает никто.
  • Я так понимаю работающей именно с этим шрифтом демки пока нету?
  • Была бы - выложил :) На самом деле, картинки такие же, как раньше я выкладывал. Например, к статье на Хабре. Растеризатор же не поменялся.
  • Блин, зачитался статьей на Хабре, а картинок там уже нет :(
  • Да, я в курсе :( У меня тоже их под рукой нет, к сожалению.
  • Heavyiron wrote:Блин, зачитался статьей на Хабре, а картинок там уже нет
    SoUrcerer wrote:Да, я в курсе У меня тоже их под рукой нет, к сожалению.
    Я стараюсь учитывать то что в интернете ничто не вечно. Ссылка ниже редкое исключение.

    http://gliffer.ru/articles/algoritmi--i ... -shriftov/
  • Who is online

    Users browsing this forum: Bing [Bot], Semrush [Bot] and 4 guests