Board.KolibriOS.org
http://board.kolibrios.org/

Библиотека масштабируемых шрифтов для Колибри
http://board.kolibrios.org/viewtopic.php?f=24&t=1740
Страница 3 из 4

Автор:  Gluk [ Вт май 31, 2011 12:26 am ]
Заголовок сообщения:  Re: Библиотека масштабируемых шрифтов для Колибри

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

Автор:  Freeman [ Вт май 31, 2011 12:58 pm ]
Заголовок сообщения:  Re: Библиотека масштабируемых шрифтов для Колибри

Нужно обратный вызов (callback) предусмотреть, чтобы программа могла сама ответить на вопрос: "Является ли данный символ переносом строки?".

Автор:  Gluk [ Вт май 31, 2011 3:54 pm ]
Заголовок сообщения:  Re: Библиотека масштабируемых шрифтов для Колибри

может просто выводить в битмап построчно?

Автор:  Gluk [ Сб июн 04, 2011 7:54 am ]
Заголовок сообщения:  Re: Библиотека масштабируемых шрифтов для Колибри

кстати, да. Нужен параметр, задающий сколько байт пропускать при записи в битмап между строками пикселей (т.е. не трогаем столько байт, начинаем след. строку уже после них). Это нужно как для работы с bmp (выравнивание до 4х байт), так и для наложение текста на битмап фон/интерфейс, где у него могут быть произвольные отступы слева/справа

Автор:  SoUrcerer [ Сб июн 04, 2011 9:41 am ]
Заголовок сообщения:  Re: Библиотека масштабируемых шрифтов для Колибри

Сколько байт пропускать между строками пикселей? о_О

Автор:  Mario [ Сб июн 04, 2011 9:48 am ]
Заголовок сообщения:  Re: Библиотека масштабируемых шрифтов для Колибри

Он имел в виду бит. Хотя если подумать, то каждый бит изображения в Колибри это 3 или 4 байта (в зависимости от разрешения).

Автор:  Gluk [ Вс июн 05, 2011 12:39 pm ]
Заголовок сообщения:  Re: Библиотека масштабируемых шрифтов для Колибри

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 [ Вс июн 05, 2011 2:13 pm ]
Заголовок сообщения:  Re: Библиотека масштабируемых шрифтов для Колибри

Теперь понятно - я для себя это называл "размером сдвига".

Автор:  Gluk [ Вт июн 07, 2011 9:06 am ]
Заголовок сообщения:  Re: Библиотека масштабируемых шрифтов для Колибри

Mario, хорошо, я учту это в следующий раз.

Автор:  SoUrcerer [ Пт мар 16, 2012 11:02 am ]
Заголовок сообщения:  Re: Библиотека масштабируемых шрифтов для Колибри

Прогресс идет. Дописал конвертер шрифтов ttf в свой формат.
На сегодняшний день формат шрифтов такой:

Код:
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. Сколько все это займет - не знает никто.

Автор:  Mario [ Пт мар 16, 2012 11:36 am ]
Заголовок сообщения:  Re: Библиотека масштабируемых шрифтов для Колибри

Я так понимаю работающей именно с этим шрифтом демки пока нету?

Автор:  SoUrcerer [ Пт мар 16, 2012 12:19 pm ]
Заголовок сообщения:  Re: Библиотека масштабируемых шрифтов для Колибри

Была бы - выложил :) На самом деле, картинки такие же, как раньше я выкладывал. Например, к статье на Хабре. Растеризатор же не поменялся.

Автор:  Heavyiron [ Вт дек 04, 2012 8:32 pm ]
Заголовок сообщения:  Re: Библиотека масштабируемых шрифтов для Колибри

Блин, зачитался статьей на Хабре, а картинок там уже нет :(

Автор:  SoUrcerer [ Вт дек 04, 2012 8:48 pm ]
Заголовок сообщения:  Re: Библиотека масштабируемых шрифтов для Колибри

Да, я в курсе :( У меня тоже их под рукой нет, к сожалению.

Автор:  z525 [ Ср дек 05, 2012 2:57 pm ]
Заголовок сообщения:  Re: Библиотека масштабируемых шрифтов для Колибри

Heavyiron писал(а):
Блин, зачитался статьей на Хабре, а картинок там уже нет

SoUrcerer писал(а):
Да, я в курсе У меня тоже их под рукой нет, к сожалению.

Я стараюсь учитывать то что в интернете ничто не вечно. Ссылка ниже редкое исключение.

http://gliffer.ru/articles/algoritmi--iz-pesochnitsi-rasterizatsiya-vektornih-shriftov/

Страница 3 из 4 Часовой пояс: UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/