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

Масштабирование растровых системных шрифтов с AEB эффектом
https://board.kolibrios.org/viewtopic.php?f=36&t=3084
Page 4 of 10

Author:  punk_joker [ Fri Jul 24, 2015 8:48 pm ]
Post subject:  Re: Масштабирование растровых системных шрифтов с AEB эффект

pavelyakov wrote:
Толщина шрифта регулируется?
Наклонный текст поддерживается?
Сможешь реализовать ф-цию загрузки разных шрифтов для колибри ( мб. специальный формат ) ?

Не думаю, что все это необходимо в ядре. Более расширенный функционал по работе со шрифтами имеет смысл выносить в библиотеку.

Author:  Pathoswithin [ Fri Jul 24, 2015 9:18 pm ]
Post subject:  Re: Масштабирование растровых системных шрифтов с AEB эффект

Да, планирую сделать библиотеку. Я, можно сказать, ещё только начал.

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

Author:  Leency [ Sat Jul 25, 2015 1:01 am ]
Post subject:  Re: Масштабирование растровых системных шрифтов с AEB эффект

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

В алгоритм закрался баг
Image

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

Author:  Pathoswithin [ Sat Jul 25, 2015 2:52 pm ]
Post subject:  Re: Масштабирование растровых системных шрифтов с AEB эффект

Дело не в алгоритме, а в стиле оформления. При сглаживании считываются пиксели экрана (или буфера), и смешиваются с цветом шрифта. Не знаю, что именно там происходит, но при стандартном стиле наблюдается только эффект наслоения в openDialog при движении стрелками. Собственно, на выделенной строке видно, что шрифт выводится некошерным способом.

Author:  Leency [ Sat Jul 25, 2015 4:08 pm ]
Post subject:  Re: Масштабирование растровых системных шрифтов с AEB эффект

Нужно определить в чет отличие твоего последнего кода от того что был в сообщении viewtopic.php?f=36&t=3084&start=15#p62027 когда этой проблемы не было.

Author:  Pathoswithin [ Sat Jul 25, 2015 5:19 pm ]
Post subject:  Re: Масштабирование растровых системных шрифтов с AEB эффект

Отличие в том, что тогда ты использовал стандартный стиль оформления. Исправления в коде правильные, сравни часы. С другой стороны, посмотри на слово "Settings", оранжевый цвет говорит о том, что оно рисуется на белом фоне, а не на фоне выделения.

Author:  Pathoswithin [ Mon Jul 27, 2015 12:57 am ]
Post subject:  Re: Масштабирование растровых системных шрифтов с AEB эффект

... алгоритм нужно доработать...

Attachments:
16.PNG
16.PNG [ 19.17 KiB | Viewed 2423 times ]

Author:  Pathoswithin [ Mon Jul 27, 2015 5:16 pm ]
Post subject:  Re: Масштабирование растровых системных шрифтов с AEB эффект

Вообще, действительно наблюдаются какие-то глюки с openDialog. Я подумал, может быть там предыдущий текст сначала стирается нулевыми символами вместо вывода с белым фоном и пробелами. В моей реализации нулевой символ всегда означает конец строки.

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

Attachments:
Oh, upgrade.PNG
Oh, upgrade.PNG [ 19.26 KiB | Viewed 2387 times ]

Author:  paulcodeman [ Mon Jul 27, 2015 9:22 pm ]
Post subject:  Re: Масштабирование растровых системных шрифтов с AEB эффект

Pathoswithin wrote:
Вообще, действительно наблюдаются какие-то глюки с openDialog. Я подумал, может быть там предыдущий текст сначала стирается нулевыми символами вместо вывода с белым фоном и пробелами. В моей реализации нулевой символ всегда означает конец строки.

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

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

Author:  Pathoswithin [ Tue Jul 28, 2015 3:10 pm ]
Post subject:  Re: Масштабирование растровых системных шрифтов с AEB эффект

Всё, ничего лучше придумать не могу. Но может кто-то придумает? Сейчас алгоритм работает просто:
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 зеркальных алгоритма.
Попробую ещё подрихтовать сам шрифт.

Attachments:
Any better.PNG
Any better.PNG [ 33.83 KiB | Viewed 2332 times ]

Author:  Leency [ Tue Jul 28, 2015 4:33 pm ]
Post subject:  Re: Масштабирование растровых системных шрифтов с AEB эффект

"v" можно заменить на ее предыдущий вариант http://prntscr.com/7xz0rs ( http://kolibri-n.org/inf/other/screens )

Author:  Sewer [ Tue Jul 28, 2015 9:39 pm ]
Post subject:  Re: Масштабирование растровых системных шрифтов с AEB эффект

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

Author:  Insolor [ Tue Jul 28, 2015 10:42 pm ]
Post subject:  Re: Масштабирование растровых системных шрифтов с AEB эффект

По поводу "волнистых" пиксельных прямых: можно аппроксимировать пиксельную прямую или пиксельную кривую по центрам пикселей соответственно прямой или кривой 2-4 степени. Правда, в случае шрифтов нужно как-то разбивать шрифт на отдельные сегменты.

Author:  Pathoswithin [ Wed Jul 29, 2015 2:41 am ]
Post subject:  Re: Масштабирование растровых системных шрифтов с AEB эффект

Идеально масштабировать мизерные растровые 1-битовые шрифты пожалуй невозможно. Здесь есть два пути: либо использовать n-битовые с оттенками серого, что потребует совсем другой, сложный алгоритм, либо просто использовать шрифты побольше. В обоих случаях многократно возрастает вес шрифта, и логичней использовать векторные шрифты. Короче, уже есть FreeType и TrueType, а здесь задача выжать максимум из минимума.

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

Attachments:
finaly.PNG
finaly.PNG [ 33.85 KiB | Viewed 2273 times ]

Author:  Pathoswithin [ Wed Jul 29, 2015 11:51 pm ]
Post subject:  Re: Масштабирование растровых системных шрифтов с AEB эффект

Момент истины...

Attachments:
Amen.PNG
Amen.PNG [ 20 KiB | Viewed 2234 times ]

Page 4 of 10 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/