Board.KolibriOS.org

Official KolibriOS board
It is currently Mon Oct 19, 2020 6:46 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 145 posts ]  Go to page Previous 1 2 3 4 5 610 Next
Author Message
PostPosted: Fri Jul 24, 2015 8:48 pm 
Offline

Joined: Tue Apr 12, 2011 11:19 pm
Posts: 1163
pavelyakov wrote:
Толщина шрифта регулируется?
Наклонный текст поддерживается?
Сможешь реализовать ф-цию загрузки разных шрифтов для колибри ( мб. специальный формат ) ?

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

_________________
я лишь учусь


Top
   
PostPosted: Fri Jul 24, 2015 9:18 pm 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1274
Да, планирую сделать библиотеку. Я, можно сказать, ещё только начал.

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


Top
   
PostPosted: Sat Jul 25, 2015 1:01 am 
Offline
Designer
User avatar

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

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

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

_________________
Звиздеть не мешки ворочать


Top
   
PostPosted: Sat Jul 25, 2015 2:52 pm 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1274
Дело не в алгоритме, а в стиле оформления. При сглаживании считываются пиксели экрана (или буфера), и смешиваются с цветом шрифта. Не знаю, что именно там происходит, но при стандартном стиле наблюдается только эффект наслоения в openDialog при движении стрелками. Собственно, на выделенной строке видно, что шрифт выводится некошерным способом.


Top
   
PostPosted: Sat Jul 25, 2015 4:08 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5292
Нужно определить в чет отличие твоего последнего кода от того что был в сообщении viewtopic.php?f=36&t=3084&start=15#p62027 когда этой проблемы не было.

_________________
Звиздеть не мешки ворочать


Top
   
PostPosted: Sat Jul 25, 2015 5:19 pm 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1274
Отличие в том, что тогда ты использовал стандартный стиль оформления. Исправления в коде правильные, сравни часы. С другой стороны, посмотри на слово "Settings", оранжевый цвет говорит о том, что оно рисуется на белом фоне, а не на фоне выделения.


Top
   
PostPosted: Mon Jul 27, 2015 12:57 am 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1274
... алгоритм нужно доработать...


Attachments:
16.PNG
16.PNG [ 19.17 KiB | Viewed 2571 times ]
Top
   
PostPosted: Mon Jul 27, 2015 5:16 pm 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1274
Вообще, действительно наблюдаются какие-то глюки с openDialog. Я подумал, может быть там предыдущий текст сначала стирается нулевыми символами вместо вывода с белым фоном и пробелами. В моей реализации нулевой символ всегда означает конец строки.

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


Attachments:
Oh, upgrade.PNG
Oh, upgrade.PNG [ 19.26 KiB | Viewed 2535 times ]
Top
   
PostPosted: Mon Jul 27, 2015 9:22 pm 
Offline
User avatar

Joined: Wed Apr 15, 2015 11:13 pm
Posts: 263
Pathoswithin wrote:
Вообще, действительно наблюдаются какие-то глюки с openDialog. Я подумал, может быть там предыдущий текст сначала стирается нулевыми символами вместо вывода с белым фоном и пробелами. В моей реализации нулевой символ всегда означает конец строки.

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

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


Top
   
PostPosted: Tue Jul 28, 2015 3:10 pm 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1274
Всё, ничего лучше придумать не могу. Но может кто-то придумает? Сейчас алгоритм работает просто:
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 2480 times ]
Top
   
PostPosted: Tue Jul 28, 2015 4:33 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5292
"v" можно заменить на ее предыдущий вариант http://prntscr.com/7xz0rs ( http://kolibri-n.org/inf/other/screens )

_________________
Звиздеть не мешки ворочать


Top
   
PostPosted: Tue Jul 28, 2015 9:39 pm 
Offline
User avatar

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

_________________
Юзер, просто юзер...со времён MS-DOS.


Top
   
PostPosted: Tue Jul 28, 2015 10:42 pm 
Offline

Joined: Thu Feb 19, 2009 12:57 pm
Posts: 68
По поводу "волнистых" пиксельных прямых: можно аппроксимировать пиксельную прямую или пиксельную кривую по центрам пикселей соответственно прямой или кривой 2-4 степени. Правда, в случае шрифтов нужно как-то разбивать шрифт на отдельные сегменты.


Top
   
PostPosted: Wed Jul 29, 2015 2:41 am 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1274
Идеально масштабировать мизерные растровые 1-битовые шрифты пожалуй невозможно. Здесь есть два пути: либо использовать n-битовые с оттенками серого, что потребует совсем другой, сложный алгоритм, либо просто использовать шрифты побольше. В обоих случаях многократно возрастает вес шрифта, и логичней использовать векторные шрифты. Короче, уже есть FreeType и TrueType, а здесь задача выжать максимум из минимума.

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


Attachments:
finaly.PNG
finaly.PNG [ 33.85 KiB | Viewed 2421 times ]
Top
   
PostPosted: Wed Jul 29, 2015 11:51 pm 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1274
Момент истины...


Attachments:
Amen.PNG
Amen.PNG [ 20 KiB | Viewed 2382 times ]
Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 145 posts ]  Go to page Previous 1 2 3 4 5 610 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited