Page 4 of 11

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

Posted: Fri Jul 24, 2015 8:48 pm
by punk_joker
pavelyakov wrote: Толщина шрифта регулируется?
Наклонный текст поддерживается?
Сможешь реализовать ф-цию загрузки разных шрифтов для колибри ( мб. специальный формат ) ?
Не думаю, что все это необходимо в ядре. Более расширенный функционал по работе со шрифтами имеет смысл выносить в библиотеку.

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

Posted: Fri Jul 24, 2015 9:18 pm
by Pathoswithin
Да, планирую сделать библиотеку. Я, можно сказать, ещё только начал.

Leency
А как это получилось? Похоже на рисование шрифта без стирания предыдущего, скорей всего было. Я исправил рисование меняющихся цифр с фоном (часы, диспетчер задач).

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

Posted: Sat Jul 25, 2015 1:01 am
by Leency
Leency
> Предыдущий вариант viewtopic.php?p=62042#p62042
> Текущий вариант http://i.imgur.com/8DhcvhO.png
А как это получилось? Похоже на рисование шрифта без стирания предыдущего, скорей всего было. Я исправил рисование меняющихся цифр с фоном (часы, диспетчер задач).
В алгоритм закрался баг
Image

Попробуй открыть окно и медленно перемещай его вбок, текст будет плавно "плыть":
Привет
Привет
Привет
Привет
Привет

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

Posted: Sat Jul 25, 2015 2:52 pm
by Pathoswithin
Дело не в алгоритме, а в стиле оформления. При сглаживании считываются пиксели экрана (или буфера), и смешиваются с цветом шрифта. Не знаю, что именно там происходит, но при стандартном стиле наблюдается только эффект наслоения в openDialog при движении стрелками. Собственно, на выделенной строке видно, что шрифт выводится некошерным способом.

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

Posted: Sat Jul 25, 2015 4:08 pm
by Leency
Нужно определить в чет отличие твоего последнего кода от того что был в сообщении viewtopic.php?f=36&t=3084&start=15#p62027 когда этой проблемы не было.

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

Posted: Sat Jul 25, 2015 5:19 pm
by Pathoswithin
Отличие в том, что тогда ты использовал стандартный стиль оформления. Исправления в коде правильные, сравни часы. С другой стороны, посмотри на слово "Settings", оранжевый цвет говорит о том, что оно рисуется на белом фоне, а не на фоне выделения.

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

Posted: Mon Jul 27, 2015 12:57 am
by Pathoswithin
... алгоритм нужно доработать...

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

Posted: Mon Jul 27, 2015 5:16 pm
by Pathoswithin
Вообще, действительно наблюдаются какие-то глюки с openDialog. Я подумал, может быть там предыдущий текст сначала стирается нулевыми символами вместо вывода с белым фоном и пробелами. В моей реализации нулевой символ всегда означает конец строки.

Так, теперь буквы y, w, v выглядят лучше. А остальные наверно хуже?

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

Posted: Mon Jul 27, 2015 9:22 pm
by paulcodeman
Pathoswithin wrote:Вообще, действительно наблюдаются какие-то глюки с openDialog. Я подумал, может быть там предыдущий текст сначала стирается нулевыми символами вместо вывода с белым фоном и пробелами. В моей реализации нулевой символ всегда означает конец строки.

Так, теперь буквы y, w, v выглядят лучше. А остальные наверно хуже?
А толщину линии некоторых больших букв не подкорректировать? Так лучше но толщина, например, где W, где изгибы как-то сливаются..
тут у больших букв один я вижу недостаток, это изгибы, в некоторых местах толщины не хватает, в некоторых с лишком много
у маленького размера все норм, в глаза ничего не бросается

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

Posted: Tue Jul 28, 2015 3:10 pm
by Pathoswithin
Всё, ничего лучше придумать не могу. Но может кто-то придумает? Сейчас алгоритм работает просто:
1 2 3
4 5 6
7 8 9
10
1.) После рисования чёрного квадрата 4, в белом квадрате 5 рисуется треугольник, если квадрат 2 чёрный, а квадрат 1 белый.
2.) Если 1 чёрный, то рисуется только если 3 и 7 белые.
3.) В первом случае, если 7 чёрный, а 6, 8 и 10 белые, то треугольник растягивается между 5 и 8.
Если не проверять 10, то "V" и "Y" будут выглядеть лучше, но остальные как в предыдущем варианте.
И ещё 3 зеркальных алгоритма.
Попробую ещё подрихтовать сам шрифт.

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

Posted: Tue Jul 28, 2015 4:33 pm
by Leency
"v" можно заменить на ее предыдущий вариант http://prntscr.com/7xz0rs ( http://kolibri-n.org/inf/other/screens )

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

Posted: Tue Jul 28, 2015 9:39 pm
by Sewer
Дело не только в добавлении недостающих треугольников (а точнее пикселей), но и в отрезании лишних. попытка вывести простой алгоритм к успеху не привела. на разном масштабе от исходных увеличенных а в 2 раза пикселей надо отрезать (добавить) одно, а на увеличении 2.5 уже другое. (Пробовал в тетради в клеточку). Получается некая Маска, своя для каждого символа и увеличения. Может эти маски (собранные в библиотеку) и использовать при увеличении шрифтов (когда необходимо)? или свой алгоритм для каждой группы символов (Прямые, косые, полукруглые)? или алгоритм сглаживания только для сегмента символа? или при увеличении использовать двухбитные пиксели ( 00 - белый, 11 - черный, 10 - темносерый, 01 - светлосерый )???

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

Posted: Tue Jul 28, 2015 10:42 pm
by Insolor
По поводу "волнистых" пиксельных прямых: можно аппроксимировать пиксельную прямую или пиксельную кривую по центрам пикселей соответственно прямой или кривой 2-4 степени. Правда, в случае шрифтов нужно как-то разбивать шрифт на отдельные сегменты.

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

Posted: Wed Jul 29, 2015 2:41 am
by Pathoswithin
Идеально масштабировать мизерные растровые 1-битовые шрифты пожалуй невозможно. Здесь есть два пути: либо использовать n-битовые с оттенками серого, что потребует совсем другой, сложный алгоритм, либо просто использовать шрифты побольше. В обоих случаях многократно возрастает вес шрифта, и логичней использовать векторные шрифты. Короче, уже есть FreeType и TrueType, а здесь задача выжать максимум из минимума.

Сделал проверку квадрата 12 вместо 6, подрихтовал некоторые буквы. Вроде теперь неплохо.

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

Posted: Wed Jul 29, 2015 11:51 pm
by Pathoswithin
Момент истины...