ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
28 марта
771189 Топик полностью
Николай Коровин (28.07.2017 14:12 - 14:42, просмотров: 717) ответил Крок на А вот такой подход заинтересует ли? Буквы (и цифры) разной ширины - по жизни оно так и есть - и первый байт в каждой букве указывает её длину.
...а теперь -- всё вместе :) 1. Вычертите пиксельный глиф таким, каким он будет эстетичен и легкочитаем. 2. Обведите пиксельный глиф более плавным и эстетичным векторным глифом так, чтобы при пикселизации он обращался именно в такой пиксельный глиф (т. е. не заходя за центры пикселов там, где не надо, и как минимум слегка заходя за них там, где надо). 3. Согласно векторному глифу, задайте данные для кернинга (двух-трёх высот достаточно). 4. Разбейте векторный глиф на отдельные вектора, проходящие через пикселы. 5. Не пытайтесь сначала строить векторный глиф, а потом пикселизовать его. Обычно он пикселизуется в какую-то дрянь. Итак, теперь у нас получен векторно-растровый глиф с кернинговыми данными, который при нахождении в целой пиксельной позиции (т. е. при неподвижном тексте) даёт желаемое пиксельное отображение. Если теперь начать скроллить текст горизонтально, включая и выключая СД сообразно началам и концам векторных интервалов, преимущество субпиксельного разрешения будет в полной мере реализовано, значительно сглаживая грубый глиф до полученного в п. 2 векторного глифа. В случае, если метод применяется для шахматного расположения СД, за один столбец считается полностью повторяемый по горизонтали паттерн. Так, на рисунке показано знакоместо не 8х5, а 4х10: ширина в 4 СД и высота в 10. Просто эти 10 в каждом столбце расположены не вертикально, а "змейкой". Кернинг в целых столбцах уже даёт слишком большие ошибки округления и следует использовать дробные величины. Позиция следующего символа берётся с точностью до целого столбца такой, чтобы суммы левого и правого интервалов соответствующих символов на всех трёх высотах лежали в заданных пределах. Пороги могут быть заданы как для отдельных интервалов, так и для среднего (например, где-то можно допустить "почти сливающиеся" соседние символы на уровне, скажем, "ножки", если они значительно отстоят на других уровнях, т. е. визуально по-прежнему хорошо разделены). Поскольку кернинг всё равно округляется до столбца, при бедном алфавите можно просто хранить сочетания кернингов между любой парой символов. _______________ tl;dr: пока всё неподвижно, всё округляется до ближайшего светодиода и превращается в обычный пиксельный шрифт с обычными буковками, разве что с небольшой претензией на кернинг. А вот когда строка начнёт двигаться -- буковки внезапно становятся сглаженными и плавненькими.
image